> On Apr 1, 2015, at 2:44 PM, Mark Millard <[email protected]> wrote: > > Attempting to use CROSS_TOOLCHAIN=powerpc64-gcc on powerpc (non-64) > 11.0-CURRENT with TARGET_ARCH=powerpc64 gets: > >> --- crti.o --- >> gcc -O2 -pipe -I/usr/srcC/lib/csu/powerpc64/../common >> -I/usr/srcC/lib/csu/powerpc64/../../libc/include -mlongcall -std=gnu99 >> -Wsystem-headers -Wall -Wno-format-y2k -W -Wno-unused-parameter >> -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type >> -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter >> -Wcast-align -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls >> -Wold-style-definition -Wno-pointer-sign -c >> /usr/srcC/lib/csu/powerpc64/crti.S >> ... >> /usr/srcC/lib/csu/powerpc64/crti.S: Assembler messages: >> /usr/srcC/lib/csu/powerpc64/crti.S:35: Error: junk at end of line, first >> unrecognized character is `@' >> /usr/srcC/lib/csu/powerpc64/crti.S:51: Error: junk at end of line, first >> unrecognized character is `@' >> *** [crti.o] Error code 1 >> > > > > Read below only for analysis. > > > > First I'll deal with the error messages. Then I'll deal with the "gcc". > > The lines of crti.S in question are: > >> .quad .L._init,.TOC.@tocbase,0 >> ... >> .quad .L._fini,.TOC.@tocbase,0 > > The error messages are because __powerpc64__ is not defined when > machine/asm.h is included so the wrong definition is used for _ENTRY(…):
The gcc port needs to be fixed, with changes fed upstream. >> #ifdef __powerpc64__ >> ... >> #define _ENTRY(name) \ >> .section ".text"; \ >> .p2align 2; \ >> .globl name; \ >> .section ".opd","aw"; \ >> .p2align 3; \ >> name: \ >> .quad DOT_LABEL(name),.TOC.@tocbase,0; \ >> .previous; \ >> .p2align 4; \ >> TYPE_ENTRY(name) \ >> DOT_LABEL(name): >> ... >> #else /* !__powerpc64__ */ >> #define _ENTRY(name) \ >> .text; \ >> .p2align 4; \ >> .globl name; \ >> .type name,@function; \ >> name: >> #define _END(name) >> #endif /* __powerpc64__ */ > > The (powerpc64 specific) Makefile may need to force a 64-bit usage (-m64 ?), > presuming that such is supported from the 32 bit environment. Generally, we’ve not added those kinds of flags to the command line. There’s many subtle issues in the tree trying to do that… Warner
signature.asc
Description: Message signed with OpenPGP using GPGMail
