mirror of
https://git.linuxfromscratch.org/lfs.git
synced 2025-06-19 03:39:20 +01:00
Change -isystem to -idirafter in "adjusting". Fix most of #4641.
git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@11819 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
This commit is contained in:
parent
0b403eb328
commit
afc6823ff1
@ -42,6 +42,20 @@
|
|||||||
<listitem revision="sysv"> or <listitem revision="systemd"> as
|
<listitem revision="sysv"> or <listitem revision="systemd"> as
|
||||||
appropriate for the entry or if needed the entire day's listitem.
|
appropriate for the entry or if needed the entire day's listitem.
|
||||||
-->
|
-->
|
||||||
|
<listitem>
|
||||||
|
<para>2020-04-20</para>
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>[pierre] - Change -isystem to -idirafter in "Adjusting the
|
||||||
|
toolchain". This allows to search g++ private headers before
|
||||||
|
the public ones, which is the normal search order, with the
|
||||||
|
drawback that it includes the headers in /tools if they exist
|
||||||
|
in both /usr and /tools. Fix most of
|
||||||
|
<ulink url="&lfs-ticket-root;4641">#4641</ulink>.</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>2020-04-19</para>
|
<para>2020-04-19</para>
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
@ -24,15 +24,17 @@ mv -v /tools/$(uname -m)-pc-linux-gnu/bin/{ld,ld-old}
|
|||||||
mv -v /tools/bin/{ld-new,ld}
|
mv -v /tools/bin/{ld-new,ld}
|
||||||
ln -sv /tools/bin/ld /tools/$(uname -m)-pc-linux-gnu/bin/ld</userinput></screen>
|
ln -sv /tools/bin/ld /tools/$(uname -m)-pc-linux-gnu/bin/ld</userinput></screen>
|
||||||
|
|
||||||
<para>Next, amend the GCC specs file so that it points to the new
|
<para>the next command amends the GCC specs file to achieve three goals:
|
||||||
dynamic linker. Simply deleting all instances of <quote>/tools</quote> should
|
first point GCC to the new dynamic linker. Simply deleting all instances of
|
||||||
leave us with the correct path to the dynamic linker. Also adjust the specs file
|
<quote>/tools</quote> should leave us with the correct path to the dynamic
|
||||||
so that GCC knows where to find the correct headers and Glibc start files.
|
linker. Second, let GCC know where to find the Glibc start files. Third,
|
||||||
|
add the /usr/include directory at the end of the default search path, so
|
||||||
|
that header files added in chapter 6 are found.
|
||||||
A <command>sed</command> command accomplishes this:</para>
|
A <command>sed</command> command accomplishes this:</para>
|
||||||
|
|
||||||
<screen><userinput>gcc -dumpspecs | sed -e 's@/tools@@g' \
|
<screen><userinput>gcc -dumpspecs | sed -e 's@/tools@@g' \
|
||||||
-e '/\*startfile_prefix_spec:/{n;s@.*@/usr/lib/ @}' \
|
-e '/\*startfile_prefix_spec:/{n;s@.*@/usr/lib/ @}' \
|
||||||
-e '/\*cpp:/{n;s@$@ -isystem /usr/include@}' > \
|
-e '/\*cpp:/{n;s@$@ -idirafter /usr/include@}' > \
|
||||||
`dirname $(gcc --print-libgcc-file-name)`/specs</userinput></screen>
|
`dirname $(gcc --print-libgcc-file-name)`/specs</userinput></screen>
|
||||||
|
|
||||||
<para>It is a good idea to visually inspect the specs file to verify the
|
<para>It is a good idea to visually inspect the specs file to verify the
|
||||||
@ -72,13 +74,18 @@ readelf -l a.out | grep ': /lib'</userinput></screen>
|
|||||||
<para os="g">Verify that the compiler is searching for the correct header
|
<para os="g">Verify that the compiler is searching for the correct header
|
||||||
files:</para>
|
files:</para>
|
||||||
|
|
||||||
<screen><userinput>grep -B1 '^ /usr/include' dummy.log</userinput></screen>
|
<screen><userinput>grep -B4 '^ /usr/include' dummy.log</userinput></screen>
|
||||||
|
|
||||||
<para os="h">This command should return the following output:</para>
|
<para os="h">This command should return the following output:</para>
|
||||||
|
|
||||||
<screen><computeroutput>#include <...> search starts here:
|
<screen><computeroutput>#include <...> search starts here:
|
||||||
|
/tools/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/include
|
||||||
|
/tools/include
|
||||||
|
/tools/lib/gcc/x86_64-pc-linux-gnu/&gcc-version;/include-fixed
|
||||||
/usr/include</computeroutput></screen>
|
/usr/include</computeroutput></screen>
|
||||||
|
|
||||||
|
<note><para>On a 32 bit system, x86_64 is replaced with i686.</para></note>
|
||||||
|
|
||||||
<para os="i">Next, verify that the new linker is being used with the correct search paths:</para>
|
<para os="i">Next, verify that the new linker is being used with the correct search paths:</para>
|
||||||
|
|
||||||
<screen os="j"><userinput>grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'</userinput></screen>
|
<screen os="j"><userinput>grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'</userinput></screen>
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
<!ENTITY version "SVN-20200419">
|
<!ENTITY version "SVN-20200420">
|
||||||
<!ENTITY short-version "svn"> <!-- Used below in &blfs-book;
|
<!ENTITY short-version "svn"> <!-- Used below in &blfs-book;
|
||||||
Change to x.y for release but not -rc releases -->
|
Change to x.y for release but not -rc releases -->
|
||||||
<!ENTITY generic-version "development"> <!-- Use "development" or "x.y[-pre{x}]" -->
|
<!ENTITY generic-version "development"> <!-- Use "development" or "x.y[-pre{x}]" -->
|
||||||
|
|
||||||
<!ENTITY versiond "20200419-systemd">
|
<!ENTITY versiond "20200420-systemd">
|
||||||
<!ENTITY short-versiond "systemd">
|
<!ENTITY short-versiond "systemd">
|
||||||
<!ENTITY generic-versiond "systemd">
|
<!ENTITY generic-versiond "systemd">
|
||||||
|
|
||||||
<!ENTITY releasedate "April 19th, 2020">
|
<!ENTITY releasedate "April 20th, 2020">
|
||||||
|
|
||||||
<!ENTITY copyrightdate "1999-2020"><!-- jhalfs needs a literal dash, not – -->
|
<!ENTITY copyrightdate "1999-2020"><!-- jhalfs needs a literal dash, not – -->
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user