Re: svn commit: r297435 - head: still problems for stage 3 when gcc 4.2.1 is avoided (powerpc64 self-hosted build)

2016-05-28 Thread Bryan Drewery
On 5/28/2016 12:03 PM, Adrian Chadd wrote:
> [snip]

I beg of you to *stop* snipping all context.

> 
> hi,
> 
> please don't patch the ports compiler assumptions about things like

I said it was not right, and was an experiment.

> this. We should be targeting external toolchains on OSes (eg macosx)
> where it may already generate freebsd binaries and as such we should
> be calling the compiler/linker with all the flags it needs.
> 
> Having a patched compiler default for mips made things way, way harder
> than it needed to be.
> 
> 




-- 
Regards,
Bryan Drewery
bdrewery@freenode/EFNet
___
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"


Re: svn commit: r297435 - head: still problems for stage 3 when gcc 4.2.1 is avoided (powerpc64 self-hosted build)

2016-05-28 Thread Mark Millard
On 2016-May-28, at 12:03 PM, Adrian Chadd  wrote:

> [snip]
> 
> hi,
> 
> please don't patch the ports compiler assumptions about things like
> this. We should be targeting external toolchains on OSes (eg macosx)
> where it may already generate freebsd binaries and as such we should
> be calling the compiler/linker with all the flags it needs.
> 
> Having a patched compiler default for mips made things way, way harder
> than it needed to be.
> 
> 
> 
> -adrian

Are there specific technical examples of specific lessons learned from the 
"patched compiler default for mips" context?

Is there an intent to use /usr/src/. . . materials for buildworld/buildkernel 
and the like from a non-FreeBSD context? Are there examples?

Currently I'm just providing evidence that some FreeBSD committers have 
requested. I'm not a committer for FreeBSD or for upstream and will not be 
making any FreeBSD system or ports changes outside my personal context. I'm no 
direct risk to FreeBSD. So your note is more for the folks having me cross 
check xtoolchain and related behavior than for me.


Notes on my context. . . (stop reading if you do not care)

Unfortunately powerpc64 and powerpc still can not be clang based overall for 
buildworld/buildkernel.

I will say that in my use of devel/powerpc64-xtoolchain-gcc (and so 
devel/powerpc64-gcc ) to have a libc++ based FreeBSD on powerpc64 I've always 
had to have some form of work around to avoid /usr/local/include causing 
buildworld failures from use of the wrong files for buildworld purposes. I have 
either:

A) temporarily renamed files below /usr/local/include/ to avoid them being used 
(or otherwise blocked /usr/local/include access)

or

B) used C_INCLUDE_PATH and CPLUS_INCLUDE_PATH to cause the C/C++ compiles to 
look below /usr/include/ before looking below /usr/local/include/ . (I've also 
experimented with extra -I's and the like.)

So far I've not used devel/powerpc64-gcc to build ports under FreeBSD. So far 
I've only built ports from a self-hosted context (no cross-built ports). So I 
tend to use something like lang/gcc49 to build ports. I'm not likely to adopt a 
technique for building the likes of lang/gcc49 that messes up using it to build 
ports.

I normally self-host buildworld/buildkernel on a powerpc64 FreeBSD context, an 
odd use of devel/powerpc64-gcc . But I have at times also cross-built from an 
amd64 FreeBSD context and it also can have the "wrong files for buildworld" 
problem for /usr/local/include/ in FreeBSD.

I've never tried buildworld/buildkernel from a non-FreeBSD context and so have 
never built devel/powerpc64-gcc or anything like its configuration outside 
FreeBSD.

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

___
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"


Re: svn commit: r297435 - head: still problems for stage 3 when gcc 4.2.1 is avoided (powerpc64 self-hosted build)

2016-05-28 Thread Adrian Chadd
[snip]

hi,

please don't patch the ports compiler assumptions about things like
this. We should be targeting external toolchains on OSes (eg macosx)
where it may already generate freebsd binaries and as such we should
be calling the compiler/linker with all the flags it needs.

Having a patched compiler default for mips made things way, way harder
than it needed to be.



-adrian
___
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"


Re: svn commit: r297435 - head: still problems for stage 3 when gcc 4.2.1 is avoided (powerpc64 self-hosted build)

2016-05-28 Thread Mark Millard
[Top post of failure to get rid of /usr/local/include from devel/powerpc64-gcc 
search list.]

I have tried:

> # svnlite diff /usr/ports/devel/powerpc64-gcc/
> Index: /usr/ports/devel/powerpc64-gcc/Makefile
> ===
> --- /usr/ports/devel/powerpc64-gcc/Makefile   (revision 415874)
> +++ /usr/ports/devel/powerpc64-gcc/Makefile   (working copy)
> @@ -43,6 +43,7 @@
>  CONFIGURE_ARGS+=--target=${GCC_TARGET} --disable-nls 
> --enable-languages=c,c++ \
>   --without-headers \
>   --with-gmp=${LOCALBASE} \
> + 
> --with-local-prefix=${LOCALBASE}/lib/gcc/${GCC_TARGET}/${PORTVERSION} \
>   --with-pkgversion="FreeBSD Ports Collection for 
> ${PKGNAMEPREFIX:C/-//g}" \
>   --with-system-zlib \
>   --with-as=${LOCALBASE}/bin/${BU_PREFIX}-as \

which when rebuilt in a powerpc64 context shows up with:

--with-local-prefix=/usr/local/lib/gcc/powerpc64-portbld-freebsd11.0/5.3.0

in the "Configured with" (from using -v):

> Target: powerpc64-portbld-freebsd11.0
> Configured with: 
> /usr/obj/portswork/usr/ports/devel/powerpc64-gcc/work/gcc-5.3.0/configure 
> --target=powerpc64-portbld-freebsd11.0 --disable-nls --enable-languages=c,c++ 
> --without-headers --with-gmp=/usr/local 
> --with-local-prefix=/usr/local/lib/gcc/powerpc64-portbld-freebsd11.0/5.3.0 
> --with-pkgversion='FreeBSD Ports Collection for powerpc64' --with-system-zlib 
> --with-as=/usr/local/bin/powerpc64-freebsd-as 
> --with-ld=/usr/local/bin/powerpc64-freebsd-ld --prefix=/usr/local 
> --localstatedir=/var --mandir=/usr/local/man --infodir=/usr/local/info/ 
> --build=powerpc64-portbld-freebsd11.0

But /usr/local/include still shows up in the search list, for example:

> ignoring nonexistent directory 
> "/usr/obj/xtoolchain_noclang/powerpc.powerpc64/usr/src/tmp/usr/local/lib/gcc/powerpc64-portbld-freebsd11.0/5.3.0/include"
> ignoring nonexistent directory 
> "/usr/local/lib/gcc/powerpc64-portbld-freebsd11.0/5.3.0/../../../../powerpc64-portbld-freebsd11.0/include"
> ignoring duplicate directory 
> "/usr/obj/xtoolchain_noclang/powerpc.powerpc64/usr/src/tmp/usr/include"
> #include "..." search starts here:
> #include <...> search starts here:
>  /usr/src/lib/msun/powerpc
>  /usr/src/lib/msun/src
>  /usr/src/lib/libc/include
>  /usr/src/lib/libc/powerpc
>  /usr/obj/xtoolchain_noclang/powerpc.powerpc64/usr/src/tmp/usr/include
>  /usr/local/lib/gcc/powerpc64-portbld-freebsd11.0/5.3.0/include
>  /usr/local/include
>  /usr/local/lib/gcc/powerpc64-portbld-freebsd11.0/5.3.0/include-fixed
> End of search list.

[Despite some prior mis-wording in other messages: The line match for 
--with-local-prefix= 's value with "/include" appended matches the line prior 
to /usr/local/include in the search list, not the following line.]

So far I'm unsuccessful at avoiding /usr/local/include being in the search 
list. I'm still at the stage of C_INCLUDE_PAPTH and CPLUS_INCLUDE_PATH being 
the best means that I've found to force /usr/include based paths to win when 
there are conflicts in /usr/local/include from ports that have been built.


So far I'm only doing the experiment with devel/powerpc64-gcc (used as the 
so-called "cross compiler" in my powerpc64 self-hosted context), not with the 
lang/gcc49 that I use as the system compiler. For lang/gcc49 I'm still using 
C_INCLUDE_PAPTH and CPLUS_INCLUDE_PATH to avoid /usr/local/include based paths 
from finding files. In part this is because I expect port building problems if 
I use lang/gcc49 to build ports without lang/gcc49 having /usr/local/include 
implicitly. I do not use devel/powerpc64-gcc to build ports.

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

On 2016-May-28, at 2:24 AM, Mark Millard  wrote:

> --with-local-prefix=/usr was insufficient to avoid /usr/local/include in the 
> search list in powerpc64-gcc:
> 
>> ignoring duplicate directory 
>> "/usr/obj/xtoolchain_noclang/powerpc.powerpc64/usr/src/tmp/usr/include"
>> ignoring nonexistent directory 
>> "/usr/local/lib/gcc/powerpc64-portbld-freebsd11.0/5.3.0/../../../../powerpc64-portbld-freebsd11.0/include"
>> ignoring duplicate directory 
>> "/usr/obj/xtoolchain_noclang/powerpc.powerpc64/usr/src/tmp/usr/include"
>> #include "..." search starts here:
>> #include <...> search starts here:
>> /usr/src/gnu/lib/libssp/libssp_nonshared/..
>> /usr/src/gnu/lib/libssp/libssp_nonshared/../../../../contrib/gcclibs/libssp
>> /usr/src/gnu/lib/libssp/libssp_nonshared/../../../../contrib/gcclibs/include
>> /usr/obj/xtoolchain_noclang/powerpc.powerpc64/usr/src/tmp/usr/include
>> /usr/local/lib/gcc/powerpc64-portbld-freebsd11.0/5.3.0/include
>> /usr/local/include
>> /usr/local/lib/gcc/powerpc64-portbld-freebsd11.0/5.3.0/include-fixed
>> End of search list.
> 
> Which came from (which shows the --with-local-prefix=/usr use):
> 
>> Configured with: 
>> /usr/obj/portswork/usr/ports/devel/powerpc64-gcc/work/gcc-5.3.0/configure 
>> 

Re: 11.0-CURRENT -r300770 libc++ update vs. lang/powerpc64-xtoolchain-gcc: no go [self hosted powerpc64 context]

2016-05-28 Thread Dimitry Andric
On 28 May 2016, at 06:18, Mark Millard  wrote:
...
> The -r300886 powerpc64 devel/powerpc64-gcc combination with no clang build 
> included has failed:
> 
> --- all_subdir_usr.bin ---
> endian.h(111): warning: bitwise operation on signed value possibly 
> nonportable [117]
> endian.h(127): warning: extra bits set to 0 in conversion of 'unsigned int' 
> to 'unsigned long long', op & [309]
> types.h(316): warning: bitwise operation on signed value possibly nonportable 
> [117]
> types.h(317): warning: bitwise operation on signed value possibly nonportable 
> [117]
> types.h(318): warning: bitwise operation on signed value possibly nonportable 
> [117]
> types.h(319): warning: bitwise operation on signed value possibly nonportable 
> [117]
> types.h(355): warning: conversion to 'unsigned int' due to prototype, arg #1 
> [259]
> types.h(355): warning: conversion from 'unsigned long long' to 'unsigned int' 
> may lose accuracy, arg #1 [298]
> types.h(355): warning: conversion to 'unsigned int' due to prototype, arg #1 
> [259]
> types.h(355): warning: conversion from 'unsigned long long' to 'unsigned int' 
> may lose accuracy, arg #1 [298]
> stdarg.h(40): syntax error [249]
> stdarg.h(98): syntax error [249]
> llib-lposix(307): syntax error [249]
> llib-lposix(308): syntax error [249]
> llib-lposix(309): syntax error [249]
> llib-lposix(309): cannot recover from previous errors [224]
> *** [llib-lposix.ln] Error code 1

For me, r300886 didn't build at all, when I tried:

CROSS_TOOLCHAIN=powerpc64-gcc TARGET=powerpc TARGET_ARCH=powerpc64 \
__MAKE_CONF=/dev/null SRCCONF=/dev/null make buildworld

It always errors out at the very first file built for the libraries
stage:

--
>>> stage 4.2: building libraries
--
cd /usr/src;  CROSS_TOOLCHAIN="powerpc64-gcc" MAKEOBJDIRPREFIX=/usr/obj  
MACHINE_ARCH=i386  MACHINE=i386  CPUTYPE= 
GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/usr/bin  
GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font  
GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/tmac 
CC="/usr/local/bin/powerpc64-portbld-freebsd11.0-gcc 
--sysroot=/usr/obj/usr/src/tmp -B/usr/local/powerpc64-freebsd/bin/" 
CXX="/usr/local/bin/powerpc64-portbld-freebsd11.0-g++  
--sysroot=/usr/obj/usr/src/tmp -B/usr/local/powerpc64-freebsd/bin/"  
CPP="/usr/local/bin/powerpc64-portbld-freebsd11.0-cpp 
--sysroot=/usr/obj/usr/src/tmp -B/usr/local/powerpc64-freebsd/bin/"  
AS="/usr/local/powerpc64-freebsd/bin/as" 
AR="/usr/local/powerpc64-freebsd/bin/ar" 
LD="/usr/local/powerpc64-freebsd/bin/ld" NM=/usr/local/powerpc64-freebsd/bin/nm 
 OBJDUMP=/usr/local/powerpc64-freebsd/bin/objdump 
OBJCOPY="/usr/local/powerpc64-freebsd/bin/objcopy"  
RANLIB=/usr/local/powerpc64-freebsd/bin/ranlib 
STRINGS=/usr/local/powerpc64-freebsd/bin/  
SIZE="/usr/local/powerpc64-freebsd/bin/size"  INSTALL="sh 
/usr/src/tools/install.sh"  
PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/bin:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin
 make  -f Makefile.inc1 DESTDIR=/usr/obj/usr/src/tmp -DNO_FSCHG MK_HTML=no 
-DNO_LINT MK_MAN=no  MK_PROFILE=no MK_TESTS=no MK_TESTS_SUPPORT=yes libraries
cd /usr/src;  make -f Makefile.inc1 _prereq_libs;  make -f Makefile.inc1 
_startup_libs;  make -f Makefile.inc1 _prebuild_libs;  make -f Makefile.inc1 
_generic_libs
===> gnu/lib/libssp/libssp_nonshared (obj,all,install)
building static ssp_nonshared library
/usr/local/powerpc64-freebsd/bin/ar -crD libssp_nonshared.a 
`NM='/usr/local/powerpc64-freebsd/bin/nm' NMFLAGS='' lorder ssp-local.o  | 
tsort -q`
/usr/local/powerpc64-freebsd/bin/ranlib -D libssp_nonshared.a
sh /usr/src/tools/install.sh  -C -o root -g wheel -m 444   libssp_nonshared.a 
/usr/obj/usr/src/tmp/usr/lib/
===> gnu/lib/libgcc (obj,all,install)
LC_ALL=C awk -f /usr/src/gnu/lib/libgcc/../../../contrib/gcc/opt-functions.awk  
-f /usr/src/gnu/lib/libgcc/../../../contrib/gcc/opth-gen.awk  < optionlist > 
options.h
/usr/local/bin/powerpc64-portbld-freebsd11.0-gcc --sysroot=/usr/obj/usr/src/tmp 
-B/usr/local/powerpc64-freebsd/bin/ -c -O2 -pipe   -DIN_GCC -DIN_LIBGCC2 
-D__GCC_FLOAT_NOT_NEEDED  -DHAVE_GTHR_DEFAULT  
-I/usr/src/gnu/lib/libgcc/../../../contrib/gcclibs/include  
-I/usr/src/gnu/lib/libgcc/../../../contrib/gcc/config 
-I/usr/src/gnu/lib/libgcc/../../../contrib/gcc -I.  
-I/usr/src/gnu/lib/libgcc/../../usr.bin/cc/cc_tools -std=gnu99 
-Wno-error=unused-function -Wno-error=enum-compare 
-Wno-error=logical-not-parentheses -Wno-error=bool-compare 
-Wno-error=uninitialized -Wno-error=array-bounds -Wno-error=clobbered 
-Wno-error=cast-align -Wno-error=extra -Wno-error=attributes -Wno-error=inline 
-Wno-error=unused-but-set-variable -Wno-error=unused-value 
-Wno-error=strict-aliasing -Wno-error=address -fvisibility=hidden 
-DHIDE_EXPORTS -fPIC -fexceptions