Re: [lfs-dev] Multilib patch

2019-01-05 Thread Kevin Buckley via lfs-dev
A web search for my GCC-internal zlib config error

configure: error: Link tests are not allowed after GCC_NO_EXECUTABLES

turned up, amongst others, these two, the first of which results from
an LFS build !

https://stackoverflow.com/questions/46487529/crosscompiling-gcc-link-tests-are-not-allowed-after-gcc-no-executables-when-che

https://github.com/easybuilders/easybuild-easyconfigs/issues/3964


The second of those suggests that it may be the lack of a "multilib capable"
toolchain ON THE HOST that is the issue for me?

With that in mind, I'm coming back to my original remarks about rebuidling
in that:

the way I last "upgraded" an x86_64 LFS to have multilib capibilty was by
following one of DJ's old books, wherein things were effectively done in
these stages:

x86_64 host -> x86_64 LFS-tools
x86_64 LFS-tools -> x86_64 LFS
x86_64 LFS -> Multilib LFS-tools components
Multilib LFS-tools -> Multilib LFS components

Indeed, after the Binutills pass1 now, the only file in /tools/bin are


x86_64-lfs-linux-gnu-addr2line  x86_64-lfs-linux-gnu-nm
x86_64-lfs-linux-gnu-ar x86_64-lfs-linux-gnu-objcopy
x86_64-lfs-linux-gnu-as x86_64-lfs-linux-gnu-objdump
x86_64-lfs-linux-gnu-c++filtx86_64-lfs-linux-gnu-ranlib
x86_64-lfs-linux-gnu-elfeditx86_64-lfs-linux-gnu-readelf
x86_64-lfs-linux-gnu-gprof  x86_64-lfs-linux-gnu-size
x86_64-lfs-linux-gnu-ld x86_64-lfs-linux-gnu-strings
x86_64-lfs-linux-gnu-ld.bfd x86_64-lfs-linux-gnu-strip

suggesting that any non-x86_64 stuff has to come from the host ?

Then again, you've stated that your sucessful build came from an
non-multilib host.

FYI, my host (Ubuntu 1404 - yes. old, yes) has

Binutils: (GNU Binutils for Ubuntu) 2.24
gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4
(Ubuntu EGLIBC 2.19-0ubuntu6.14) 2.19

so is a little diferent to what the Multilib book suggests things
have been tested against, bis:

Binutils-2.25 (Versions greater than 2.31.1 are not recommended as
they have not been tested)
GCC-4.9 including the C++ compiler, g++ (Versions greater than 8.2.0
are not recommended as they have not been tested)
Glibc-2.11 (Versions greater than 2.28 are not recommended as they
have not been tested)

I think I may find the best way forwards to be one in which I build an
non-Multilib LFS 8-3
and then use that to boostrap the Multilib one, as that would give me
a "host" with

Binutils-2.31.1
GCC-8.2.0
Glibc-2.28

Just out of interest then, what are the Binutils, GCC, Glibc versions on
the "non-multilib" host that your Multilib buils suceeds ?
-- 
http://lists.linuxfromscratch.org/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Re: [lfs-dev] Multilib patch

2019-01-05 Thread Thomas Trepl via lfs-dev
Hi Kevin,

Am Samstag, den 05.01.2019, 18:56 +0800 schrieb Kevin Buckley via lfs-
dev:
> ...
> 
> Failed at the second hurdle.
> 
> The first GCC pass gets as far, in the `make`, as building the included zlib
> and, whilst configuring that, ends with

> Adding multilib support to Makefile in ../../zlib
> multidirs=32 x32
> with_multisubdir=
> Running configure in multilib subdirs 32 x32
> pwd: /home/lfs/gcc-8.2.0/build/zlib
> Running configure in multilib subdir 32
> pwd: /home/lfs/gcc-8.2.0/build
> mkdir 32
> configure: creating cache ./config.cache
> checking build system type... x86_64-pc-linux-gnu
> checking host system type... x86_64-pc-linux-gnu
> checking target system type... x86_64-lfs-linux-gnu
> checking for a BSD-compatible install... /usr/bin/install -c
> checking whether build environment is sane... yes
> checking for x86_64-pc-linux-gnu-strip... no
> checking for strip... strip
> checking for a thread-safe mkdir -p... /bin/mkdir -p
> checking for gawk... gawk
> checking whether make sets $(MAKE)... yes
> checking whether to enable maintainer-specific portions of Makefiles... no
> checking for x86_64-pc-linux-gnu-gcc... gcc  -m32
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether gcc  -m32 accepts -g... yes
> checking for gcc  -m32 option to accept ISO C89... unsupported
> checking for style of include used by make... GNU
> checking dependency style of gcc  -m32... gcc3
> checking how to print strings... printf
> checking for a sed that does not truncate output... /bin/sed
> checking for grep that handles long lines and -e... /bin/grep
> checking for egrep... /bin/grep -E
> checking for fgrep... /bin/grep -F
> checking for ld used by gcc  -m32... ld -m elf_x86_64
> checking if the linker (ld -m elf_x86_64) is GNU ld... yes
> checking for BSD- or MS-compatible name lister (nm)... nm
> checking the name lister (nm) interface... BSD nm
> checking whether ln -s works... yes
> checking the maximum length of command line arguments... 3458764513820540925
> checking whether the shell understands some XSI constructs... yes
> checking whether the shell understands "+="... yes
> checking for ld -m elf_x86_64 option to reload object files... -r
> checking for x86_64-pc-linux-gnu-objdump... objdump
> checking how to recognize dependent libraries... pass_all
> checking for x86_64-pc-linux-gnu-ar... ar
> checking for x86_64-pc-linux-gnu-strip... strip
> checking for x86_64-pc-linux-gnu-ranlib... ranlib
> checking command to parse nm output from gcc  -m32 object... failed
> checking how to run the C preprocessor... /lib/cpp
> checking for ANSI C header files... no
> checking for sys/types.h... no
> checking for sys/stat.h... no
> checking for stdlib.h... no
> checking for string.h... no
> checking for memory.h... no
> checking for strings.h... no
> checking for inttypes.h... no
> checking for stdint.h... no
> checking for unistd.h... no
> checking for dlfcn.h... no
> checking for objdir... .libs
> checking if gcc  -m32 supports -fno-rtti -fno-exceptions... no
> checking for gcc  -m32 option to produce PIC... -fPIC -DPIC
> checking if gcc  -m32 PIC flag -fPIC -DPIC works... yes
> checking if gcc  -m32 static flag -static works... no
> checking if gcc  -m32 supports -c -o file.o... yes
> checking if gcc  -m32 supports -c -o file.o... (cached) yes
> checking whether the gcc  -m32 linker (ld -m elf_x86_64 -m elf_i386)
> supports shared libraries... yes
> checking dynamic linker characteristics... configure: error: Link
> tests are not allowed after GCC_NO_EXECUTABLES.
> make[1]: *** [configure-zlib] Error 1
> make[1]: Leaving directory `/media/sda5/home-lfs/gcc-8.2.0/build'
> make: *** [all] Error 2
> 
> 
> Has my applying the Multilib patch not done all it should - it applied cleanly
> as I noted above.

If it applied cleanly, then it should have touched everything needed.

Strange enough - i cannot reproduce this issue, just did a build on a
non-multilib host and it goes fine (so far, now at gcc-pass2 in chap-
5).

Can you have a look into the config.log file - maybe there is
something more informative? 

--
Thomas



-- 
http://lists.linuxfromscratch.org/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Re: [lfs-dev] Multilib patch

2019-01-05 Thread Kevin Buckley via lfs-dev
On Thu, 3 Jan 2019 at 16:21, DJ Lucas via lfs-dev
 wrote:
>
> On January 2, 2019 6:55:52 AM CST, Kevin Buckley via lfs-dev wrote:
>
> > ...
> >Looks like I will have to go back to a full redeployment though, as I
> >see that
> >the Chapter 5 utilities now have some 32-bit stuff in, whereas my
> >modified 8.3
> >Chapter 5 didn't.
> >
>
> Yeah, doing the build inline is certainly better from a maintenance POV. It 
> adds a couple of extra builds, but the reduced maintenance burden (which 
> should ultimately result in an increase in accuracy being the instructions 
> are on the same page), far outweighs the minimal cumulative SBU increase. 
> Thomas's patch likely doesn't require much if any manual intervention.
>

Failed at the second hurdle.

The first GCC pass gets as far, in the `make`, as building the included zlib
and, whilst configuring that, ends with

Adding multilib support to Makefile in ../../zlib
multidirs=32 x32
with_multisubdir=
Running configure in multilib subdirs 32 x32
pwd: /home/lfs/gcc-8.2.0/build/zlib
Running configure in multilib subdir 32
pwd: /home/lfs/gcc-8.2.0/build
mkdir 32
configure: creating cache ./config.cache
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-lfs-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for x86_64-pc-linux-gnu-strip... no
checking for strip... strip
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for x86_64-pc-linux-gnu-gcc... gcc  -m32
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc  -m32 accepts -g... yes
checking for gcc  -m32 option to accept ISO C89... unsupported
checking for style of include used by make... GNU
checking dependency style of gcc  -m32... gcc3
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc  -m32... ld -m elf_x86_64
checking if the linker (ld -m elf_x86_64) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... nm
checking the name lister (nm) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 3458764513820540925
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking for ld -m elf_x86_64 option to reload object files... -r
checking for x86_64-pc-linux-gnu-objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for x86_64-pc-linux-gnu-ar... ar
checking for x86_64-pc-linux-gnu-strip... strip
checking for x86_64-pc-linux-gnu-ranlib... ranlib
checking command to parse nm output from gcc  -m32 object... failed
checking how to run the C preprocessor... /lib/cpp
checking for ANSI C header files... no
checking for sys/types.h... no
checking for sys/stat.h... no
checking for stdlib.h... no
checking for string.h... no
checking for memory.h... no
checking for strings.h... no
checking for inttypes.h... no
checking for stdint.h... no
checking for unistd.h... no
checking for dlfcn.h... no
checking for objdir... .libs
checking if gcc  -m32 supports -fno-rtti -fno-exceptions... no
checking for gcc  -m32 option to produce PIC... -fPIC -DPIC
checking if gcc  -m32 PIC flag -fPIC -DPIC works... yes
checking if gcc  -m32 static flag -static works... no
checking if gcc  -m32 supports -c -o file.o... yes
checking if gcc  -m32 supports -c -o file.o... (cached) yes
checking whether the gcc  -m32 linker (ld -m elf_x86_64 -m elf_i386)
supports shared libraries... yes
checking dynamic linker characteristics... configure: error: Link
tests are not allowed after GCC_NO_EXECUTABLES.
make[1]: *** [configure-zlib] Error 1
make[1]: Leaving directory `/media/sda5/home-lfs/gcc-8.2.0/build'
make: *** [all] Error 2


Has my applying the Multilib patch not done all it should - it applied cleanly
as I noted above.
-- 
http://lists.linuxfromscratch.org/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page