Ref:

Linux From Scratch - Version SVN-20181029
Chapter 5. Constructing a Temporary System
5.5. GCC-8.2.0 - Pass 1

Using the latest script to update the dynamic linker results in gcc failing to 
build.

Using a previous script fixes the problem.

Details below.

Regards
John

----------

This script:

for file in gcc/config/{linux,i386/linux{,64}}.h
do
  cp -uv $file{,.orig}
  sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \
      -e 's@/usr@/tools@g' $file.orig > $file
  echo '
#undef STANDARD_STARTFILE_PREFIX_1
#undef STANDARD_STARTFILE_PREFIX_2
#define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/"
#define STANDARD_STARTFILE_PREFIX_2 ""' >> $file
  touch $file.orig
done

results in:

g++ -fno-PIE -c  -DIN_GCC_FRONTEND -DIN_GCC_FRONTEND -g -O2 -DIN_GCC  
-DCROSS_DIRECTORY_STRUCTURE   -fno-exceptions -fno-rtti 
-fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings 
-Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic 
-Wno-long-long -Wno-variadic-macros -Wno-overlength-strings   -DHAVE_CONFIG_H 
-I. -Ic-family -I../../gcc -I../../gcc/c-family -I../../gcc/../include 
-I../../gcc/../libcpp/include -I/mnt/tc/sources/gcc-8.2.0/build/./gmp 
-I/mnt/tc/sources/gcc-8.2.0/gmp -I/mnt/tc/sources/gcc-8.2.0/build/./mpfr/src 
-I/mnt/tc/sources/gcc-8.2.0/mpfr/src -I/mnt/tc/sources/gcc-8.2.0/mpc/src  
-I../../gcc/../libdecnumber -I../../gcc/../libdecnumber/dpd -I../libdecnumber 
-I../../gcc/../libbacktrace   -o c-family/c-cppbuiltin.o -MT 
c-family/c-cppbuiltin.o -MMD -MP -MF c-family/.deps/c-cppbuiltin.TPo 
../../gcc/c-family/c-cppbuiltin.c
In file included from ./tm.h:38:0,
                 from ../../gcc/target.h:52,
                 from ../../gcc/c-family/c-cppbuiltin.c:23:
../../gcc/c-family/c-cppbuiltin.c: In function 'void 
c_cpp_builtins(cpp_reader*)':
../../gcc/config/i386/linux-common.h:25:7: error: 
'GNU_USER_TARGET_OS_CPP_BUILTINS' was not declared in this scope
       GNU_USER_TARGET_OS_CPP_BUILTINS();       \
       ^
../../gcc/c-family/c-cppbuiltin.c:1415:3: note: in expansion of macro 
'TARGET_OS_CPP_BUILTINS'
   TARGET_OS_CPP_BUILTINS ();
   ^~~~~~~~~~~~~~~~~~~~~~
../../gcc/config/i386/linux-common.h:25:7: note: suggested alternative: 
'ANDROID_TARGET_OS_CPP_BUILTINS'
       GNU_USER_TARGET_OS_CPP_BUILTINS();       \
       ^
../../gcc/c-family/c-cppbuiltin.c:1415:3: note: in expansion of macro 
'TARGET_OS_CPP_BUILTINS'
   TARGET_OS_CPP_BUILTINS ();
   ^~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [Makefile:1110: c-family/c-cppbuiltin.o] Error 1
make[2]: Leaving directory '/mnt/tc/sources/gcc-8.2.0/build/gcc'
make[1]: *** [Makefile:4255: all-gcc] Error 2
make[1]: Leaving directory '/mnt/tc/sources/gcc-8.2.0/build'
make: *** [Makefile:890: all] Error 2

This script works:

for file in $(find gcc/config -name linux64.h -o -name linux.h)
do
  cp $file $file.orig
  sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' -e 's@/usr@/tools@g' $file.orig 
> $file
  echo '
#undef STANDARD_STARTFILE_PREFIX_1
#undef STANDARD_STARTFILE_PREFIX_2
#define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/"
#define STANDARD_STARTFILE_PREFIX_2 ""' >> $file
  touch $file.orig
done
-- 
http://lists.linuxfromscratch.org/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to