Date: Wed, 1 Apr 2015 14:49:51 -0700 From: Warner Losh <imp@bsdimp.com> To: Mark Millard <markmi@dsl-only.net> Cc: FreeBSD Toolchain <freebsd-toolchain@freebsd.org>, FreeBSD PowerPC ML <freebsd-ppc@freebsd.org> Subject: Re: Shorter report: powerpc64-xtoolchain-gcc use fails from powerpc (non-64) Message-ID: <B49E8B91-B8C2-4F0C-9662-8814C16041A4@bsdimp.com> In-Reply-To: <BB07709E-A5D3-458A-8ED7-61E64103A43C@dsl-only.net> References: <BB07709E-A5D3-458A-8ED7-61E64103A43C@dsl-only.net>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --] > On Apr 1, 2015, at 2:44 PM, Mark Millard <markmi@dsl-only.net> 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 [-- Attachment #2 --] -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQIcBAEBCgAGBQJVHGf/AAoJEGwc0Sh9sBEAIZoP/1m2jc320czmLmlohqDGG+m4 KD82iXxH4wnBSTm5AJ9ivtpbV8rkeOu/f1Aw9l0eHPQaj9aAslvaDxDMjpX5kXaa mZGDjzGm4FegktXIhIf8LZo4rRHNNc6fML/qeqL9QYKEQFJqXsGjrtIpRKlkX4Ah 5q3HJcA9By5rxNn/ws2Bktjpcd/2s4gG4Dd4jy9QyjBxGuVjlPU5PeIxV3e5vZ/T RbNsrsV/Hsfi8APnI1kjFe3bp4Muu+/ER9rUKY4V2F/SGtotvhA6iwnoSFNJHaHa 46PA4+ybEXaDYTt+wwGM4FaLGvIG4mZXtBwctUnXZrH+w5oMfgxDiTCPebKmQDmR c+o8aLpXgJr6FdfBwYeuQTM2KcZ9WpbiGSLRoeHA0DPQC/som/sFj/OIqbn08Fce W/Wiw7BYCI1f8aRDWLH8E3xbd6maEp3WuRKLIE5fV5o/Y0Iw2p4T2EJSVcB9xMU7 T/9wh7hWfUNfV63E2uY6Qq5a4CqPzx9AFi9SkhBEp5mPadIgdjKRDMjU+6KAn/x8 PScWRX+xPCkOsLnA6eBYHqMJEAiXo/TgjH6ogyFZw7eEMiMBQHaYWoABn9vhhQ/K EgI+zGrJk0ZlBLSbm2eGbQqXYk9Sa/djhx+vjmK5HVPKeYhN3TQodTgVs2EN5b39 PIw70mMGZkvc6Cf6wo/m =le1J -----END PGP SIGNATURE-----help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B49E8B91-B8C2-4F0C-9662-8814C16041A4>
