port's svn commit: r413746 - in head "many ports: mark broken on powerpc64": for what toolchains?

Mark Millard markmi at dsl-only.net
Thu Apr 28 22:58:15 UTC 2016


Now that I can look at your log (gcc6-devel-6.0.0.s20160320.log) we have a WITH_LIB32= vs. WITHOUT_LIB32= difference (potential differences was one of the reasons I early on included my src.conf content such such):

In your gcc6-devel-6.0.0.s20160320.log .libs/close.o without -m32 (so 64 bit) built fine but with -m32 did not.

Would disabling lib32 support for powerpc64 be better than the completely-BROKEN classification?


Background notes for why I omit lib32 support:

My buildworld's and builds of gcc*'s do not include lib32 because, while a devel/powerpc64-gcc (xtoolchain) based buildworld for WITH_LIB32= produces a lib32, the lib32 context does not work when used. This is due to crtbeginS code problems related to R30 use (bad address in R30 dereferenced). (Native builds and cross builds from amd64 both produce the bad code.) I have not figured out why the crtbeginS code produced by devel\powerpc64-gcc is as it is --or how to control that code to be what FreeBSD needs for lib32 use.

Until I figure that out I normally use WITHOUT_LIB32= in my src.conf and I always build powerpc64 lang/gcc*'s without lib32 support.



Your lib32 context seems to have trouble finding declarations/definitions from headers, such as for strdup and free. Quoting the .libs/close.o related error messages for when -m32 is involved:

> ../../.././../gcc-6-20160320/libgfortran/io/close.c: In function 'st_close':
> ../../.././../gcc-6-20160320/libgfortran/io/close.c:75:11: error: implicit declaration of function 'strdup' [-Werror=implicit-function-declaration]
>     path = strdup (u->filename);
>            ^~~~~~
> ../../.././../gcc-6-20160320/libgfortran/io/close.c:75:11: warning: incompatible implicit declaration of built-in function 'strdup'
> ../../.././../gcc-6-20160320/libgfortran/io/close.c:85:15: warning: incompatible implicit declaration of built-in function 'strdup'
>         path = strdup (u->filename);
>                ^~~~~~
> ../../.././../gcc-6-20160320/libgfortran/io/close.c:96:4: error: implicit declaration of function 'free' [-Werror=implicit-function-declaration]
>     free (path);
>     ^~~~
> ../../.././../gcc-6-20160320/libgfortran/io/close.c:96:4: warning: incompatible implicit declaration of built-in function 'free'
> ../../.././../gcc-6-20160320/libgfortran/io/close.c:96:4: note: include '<stdlib.h>' or provide a declaration of 'free'
> cc1: some warnings being treated as errors



===
Mark Millard
markmi at dsl-only.net

On 2016-Apr-28, at 2:30 PM, Steve Wills <swills at FreeBSD.org> wrote:

On 04/28/16 01:52 PM, Mark Millard wrote:
> 
> Just FYI in case gcc49 is also of a different vintage vs. what I used:
> 
>> # pkg info 'gcc*'
>> gcc49-4.9.4.s20160406
>> gcc6-devel-6.0.1.s20160421
> 
> (I still have no access to the log file via the URL.)
> 

The gcc49 is gcc49-4.9.4.s20160210, though I think the version of
gcc6-devel is more relevant. Host is back up now.

Steve




More information about the freebsd-ppc mailing list