Subject: bug#5655: incorrect paths for crt1.o, crtn.o, etc.

From: Sven Joachim <[email-masked]>
Date: Tue, 27 Apr 2010 21:27:27 +0200

On 2010-04-27 19:33 +0200, Glenn Morris wrote:

> The following patch might make things behave like they used to, could
> you try it out? You will need to run autoconf.

Does not seem to work at all.

>
> *** configure.in	2010-04-27 08:09:01 +0000
> --- configure.in	2010-04-27 17:22:23 +0000
> ***************
> *** 761,766 ****
> --- 761,776 ----
>   if test "x$RANLIB" = x; then
>     AC_PROG_RANLIB
>   fi
> + 
> + ## Although we're running on an amd64 kernel, we're actually compiling for
> + ## the x86 architecture.  The user should probably have provided an
> + ## explicit --build to `configure', but if everything else than the kernel
> + ## is running in i386 mode, we can help them out.
> + if test "$machine" = "amdx86-64"; then
> +   AC_CHECK_DECL([i386])
> +   test "$ac_cv_have_decl_i386" = "yes" && machine=intel386
> + fi
> + 
>   AC_PATH_PROG(INSTALL_INFO, install-info)
>   AC_PATH_PROG(INSTALL_INFO, install-info,, /usr/sbin)
>   AC_PATH_PROG(INSTALL_INFO, install-info,:, /sbin)

Okay, configure picks this up:

checking whether i386 is declared... yes

> *** src/m/amdx86-64.h	2010-04-27 03:14:14 +0000
> --- src/m/amdx86-64.h	2010-04-27 17:27:11 +0000
> ***************
> *** 17,31 ****
>   You should have received a copy of the GNU General Public License
>   along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
>   
> - #ifdef i386
> - /* Although we're running on an amd64 kernel, we're actually compiling for
> -    the x86 architecture.  The user should probably have provided an
> -    explicit --build to `configure', but if everything else than the kernel
> -    is running in i386 mode, then the bug is really ours: we should have
> -    guessed better.  */
> - #include "m/intel386.h"
> - #else
> - 
>   /* The following line tells the configuration script what sort of
>      operating system this machine is likely to run.
>      USUAL-OPSYS="linux"  */
> --- 17,22 ----
> ***************
> *** 90,96 ****
>   #define LIB_STANDARD -lgcc -lc -lgcc $(CRT_DIR)/crtn.o
>   
>   #endif /* SOLARIS2 */
> - #endif /* !i386 */
>   
>   /* arch-tag: 8a5e001d-e12e-4692-a3a6-0b15ba271c6e
>      (do not change this comment) */
> --- 81,86 ----

This part does not apply cleanly, and after I removed the corresponding lines
manually things broke badly because BITS_PER_LONG got #defined to 64 etc.

Sven