Changeset 09f1daf for chapter06/readjusting.xml
- Timestamp:
- 05/03/2006 02:37:49 AM (18 years ago)
- Branches:
- 10.0, 10.0-rc1, 10.1, 10.1-rc1, 11.0, 11.0-rc1, 11.0-rc2, 11.0-rc3, 11.1, 11.1-rc1, 11.2, 11.2-rc1, 11.3, 11.3-rc1, 12.0, 12.0-rc1, 12.1, 12.1-rc1, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 7.0, 7.1, 7.2, 7.3, 7.4, 7.5, 7.5-systemd, 7.6, 7.6-systemd, 7.7, 7.7-systemd, 7.8, 7.8-systemd, 7.9, 7.9-systemd, 8.0, 8.1, 8.2, 8.3, 8.4, 9.0, 9.1, arm, bdubbs/gcc13, ml-11.0, multilib, renodr/libudev-from-systemd, s6-init, trunk, xry111/arm64, xry111/arm64-12.0, xry111/clfs-ng, xry111/lfs-next, xry111/loongarch, xry111/loongarch-12.0, xry111/loongarch-12.1, xry111/mips64el, xry111/pip3, xry111/rust-wip-20221008, xry111/update-glibc
- Children:
- 8abeb3b
- Parents:
- fffff97
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter06/readjusting.xml
rfffff97 r09f1daf 53 53 </important> 54 54 55 <caution> 56 <para>It is imperative at this point to stop and ensure that the basic 57 functions (compiling and linking) of the adjusted toolchain are working 58 as expected. To do this, perform a sanity check:</para> 55 <para>It is imperative at this point to ensure that the basic 56 functions (compiling and linking) of the adjusted toolchain are working 57 as expected. To do this, perform the following sanity checks:</para> 59 58 60 <screen ><userinput>echo 'main(){}' > dummy.c59 <screen role="nodump" os="a"><userinput>echo 'main(){}' > dummy.c 61 60 cc dummy.c -Wl,--verbose &> dummy.log 62 61 readelf -l a.out | grep ': /lib'</userinput></screen> 63 62 64 <para>If everything is working correctly, there should be no errors,65 66 63 <para os="b">If everything is working correctly, there should be no errors, 64 and the output of the last command will be (allowing for 65 platform-specific differences in dynamic linker name):</para> 67 66 68 <screen ><computeroutput>[Requesting program interpreter: /lib/ld-linux.so.2]</computeroutput></screen>67 <screen os="c"><computeroutput>[Requesting program interpreter: /lib/ld-linux.so.2]</computeroutput></screen> 69 68 70 71 69 <para>Note that <filename class="directory">/lib</filename> is now 70 the prefix of our dynamic linker.</para> 72 71 73 <para>Now make sure that we're setup to use the correct startfiles:</para>72 <para os="d">Now make sure that we're setup to use the correct startfiles:</para> 74 73 75 <screen ><userinput>grep "/usr/lib/crt.* "dummy.log</userinput></screen>74 <screen role="nodump" os="e"><userinput>grep -o '/usr/lib.*/crt[1in].* .*' dummy.log</userinput></screen> 76 75 77 <para>If everything is working correctly, there should be no errors,76 <para os="f">If everything is working correctly, there should be no errors, 78 77 and the output of the last command will be:</para> 79 78 80 <screen><computeroutput> attempt to open/usr/lib/crt1.o succeeded81 attempt to open/usr/lib/crti.o succeeded82 attempt to open/usr/lib/crtn.o succeeded</computeroutput></screen>79 <screen><computeroutput>/usr/lib/crt1.o succeeded 80 /usr/lib/crti.o succeeded 81 /usr/lib/crtn.o succeeded</computeroutput></screen> 83 82 84 <para>Next make sure that we're using the correct libc:</para>83 <para os="g">Next, verify that the new linker is being used with the correct search paths:</para> 85 84 86 <screen ><userinput>grep "/lib/libc.so.6 " dummy.log</userinput></screen>85 <screen role="nodump" os="h"><userinput>grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'</userinput></screen> 87 86 88 <para>If everything is working correctly, there should be no errors,89 87 <para os="i">If everything is working correctly, there should be no errors, 88 and the output of the last command will be:</para> 90 89 91 <screen><computeroutput>attempt to open /lib/libc.so.6 succeeded</computeroutput></screen> 90 <screen><computeroutput>SEARCH_DIR("/tools/i686-pc-linux-gnu/lib") 91 SEARCH_DIR("/usr/lib") 92 SEARCH_DIR("/lib");</computeroutput></screen> 92 93 93 <para>Lastly, make sure GCC is using the correct dynamic linker:</para>94 <para os="j">Next make sure that we're using the correct libc:</para> 94 95 95 <screen ><userinput>grep founddummy.log</userinput></screen>96 <screen role="nodump" os="k"><userinput>grep "/lib/libc.so.6 " dummy.log</userinput></screen> 96 97 97 <para>If everything is working correctly, there should be no errors, 98 and the output of the last command will be (allowing for 99 platform-specific differences in dynamic linker name):</para> 98 <para os="l">If everything is working correctly, there should be no errors, 99 and the output of the last command will be:</para> 100 100 101 <screen ><computeroutput>found ld-linux.so.2 at /lib/ld-linux.so.2</computeroutput></screen>101 <screen os="m"><computeroutput>attempt to open /lib/libc.so.6 succeeded</computeroutput></screen> 102 102 103 <para>If the output does not appear as shown above or is not received 104 at all, then something is seriously wrong. Investigate and retrace the 105 steps to find out where the problem is and correct it. The most likely 106 reason is that something went wrong with the specs file amendment 107 above. Any issues will need to be resolved before continuing on with 108 the process.</para> 103 <para os="n">Lastly, make sure GCC is using the correct dynamic linker:</para> 109 104 110 <para>Once everything is working correctly, clean up the test 111 files:</para> 105 <screen role="nodump" os="o"><userinput>grep found dummy.log</userinput></screen> 112 106 113 <screen><userinput>rm -v dummy.c a.out dummy.log</userinput></screen> 114 </caution> 107 <para os="p">If everything is working correctly, there should be no errors, 108 and the output of the last command will be (allowing for 109 platform-specific differences in dynamic linker name):</para> 110 111 <screen os="q"><computeroutput>found ld-linux.so.2 at /lib/ld-linux.so.2</computeroutput></screen> 112 113 <para os="r">If the output does not appear as shown above or is not received 114 at all, then something is seriously wrong. Investigate and retrace the 115 steps to find out where the problem is and correct it. The most likely 116 reason is that something went wrong with the specs file adjustment. Any 117 issues will need to be resolved before continuing on with the process.</para> 118 119 <para os="s">Once everything is working correctly, clean up the test files:</para> 120 121 <screen role="nodump" os="t"><userinput>rm -v dummy.c a.out dummy.log</userinput></screen> 115 122 116 123 </sect1>
Note:
See TracChangeset
for help on using the changeset viewer.