| From | Sent On | Attachments |
|---|---|---|
| Peter Grehan | Sep 7, 2006 10:00 pm | |
| John Baldwin | Sep 8, 2006 3:22 pm | |
| John Baldwin | Sep 8, 2006 3:32 pm | |
| Peter Grehan | Sep 8, 2006 9:04 pm | |
| Peter Grehan | Sep 8, 2006 9:10 pm | |
| Ruslan Ermilov | Sep 14, 2006 12:50 am | |
| Ruslan Ermilov | Sep 14, 2006 1:07 am |
| Subject: | amd64/102996: powerpc cross-build fails on amd64 host, works fine on i386 | |
|---|---|---|
| From: | Ruslan Ermilov (ru...@FreeBSD.org) | |
| Date: | Sep 14, 2006 12:50:07 am | |
| List: | org.freebsd.freebsd-amd64 | |
The following reply was made to PR amd64/102996; it has been noted by GNATS.
From: Ruslan Ermilov <ru...@FreeBSD.org>
To: bug-...@FreeBSD.org
Cc: John Baldwin <jh...@FreeBSD.org>, Peter Grehan <gre...@FreeBSD.org>
Subject: Re: amd64/102996: powerpc cross-build fails on amd64 host, works fine
on i386
Date: Thu, 14 Sep 2006 11:49:37 +0400
On Fri, Sep 08, 2006 at 11:10:52AM -0400, John Baldwin wrote:
On Thursday 07 September 2006 17:51, Peter Grehan wrote:
%%% Index: Makefile =================================================================== RCS file: /home/ncvs/src/gnu/usr.bin/binutils/libbfd/Makefile,v retrieving revision 1.33 diff -u -r1.33 Makefile --- Makefile 24 Oct 2004 15:32:25 -0000 1.33 +++ Makefile 26 Aug 2006 00:48:26 -0000 @@ -48,6 +48,12 @@ CFLAGS+= -DSELECT_VECS="${SELVEC}" CFLAGS+= -DDEFAULT_VECTOR=${DEFAULT_VECTOR}
+.if ${TARGET_ARCH:M*64} +CFLAGS+= -DTARGET_64BIT=1 +.else +CFLAGS+= -DTARGET_64BIT=0 +.endif +
This doesn't match alpha (though that only matters if you MFC this). Seems that a more general purpose solution would be to test TARGET_ARCH and use that to set TARGET properties
I just quickly prototyped the patch back then. How's this instead?
%%% Index: Makefile =================================================================== RCS file: /home/ncvs/src/gnu/usr.bin/binutils/libbfd/Makefile,v retrieving revision 1.33 diff -u -p -u -r1.33 Makefile --- Makefile 24 Oct 2004 15:32:25 -0000 1.33 +++ Makefile 14 Sep 2006 07:45:19 -0000 @@ -48,6 +48,14 @@ SELVEC+= ,&${_v} CFLAGS+= -DSELECT_VECS="${SELVEC}" CFLAGS+= -DDEFAULT_VECTOR=${DEFAULT_VECTOR}
+.if ${DEFAULT_VECTOR:Mbfd_elf64_*} +CFLAGS+= -DTARGET_64BIT=1 +.elif ${DEFAULT_VECTOR:Mbfd_elf32_*} +CFLAGS+= -DTARGET_64BIT=0 +.else +.error unknown DEFAULT_VECTOR=${DEFAULT_VECTOR} +.endif + # XXX:DEO should grab BFD_VERSION_DATE from ${VERSION}... bfdver.h: Makefile echo '#define BFD_VERSION 215000000' > ${.TARGET} Index: bfd.h =================================================================== RCS file: /home/ncvs/src/gnu/usr.bin/binutils/libbfd/bfd.h,v retrieving revision 1.3 diff -u -p -u -r1.3 bfd.h --- bfd.h 8 Jul 2004 17:05:32 -0000 1.3 +++ bfd.h 14 Sep 2006 07:34:28 -0000 @@ -57,15 +57,18 @@ extern "C" { #define BFD_ARCH_SIZE 64
-#if defined(__i386__) || defined(__powerpc__) || defined(__arm__)
/* The word size of the default bfd target. */
+#if TARGET_64BIT
+#define BFD_DEFAULT_TARGET_SIZE 64
+#else
#define BFD_DEFAULT_TARGET_SIZE 32
+#endif
+
+#if defined(__i386__) || defined(__powerpc__) || defined(__arm__)
#define BFD_HOST_64BIT_LONG 0
#define BFD_HOST_64_BIT long long
#define BFD_HOST_U_64_BIT unsigned long long
#elif defined(__alpha__) || defined(__sparc64__) || defined(__amd64__) ||
defined(__ia64__)
-/* The word size of the default bfd target. */
-#define BFD_DEFAULT_TARGET_SIZE 64
#define BFD_HOST_64BIT_LONG 1
#define BFD_HOST_64_BIT long
#define BFD_HOST_U_64_BIT unsigned long
%%%
(i.e. the bug seems to be that it's setting TARGET properties based on the host arch, which is wrong).
Exactly!
Cheers, -- Ruslan Ermilov ru...@FreeBSD.org FreeBSD committer





