| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | <sect1 id="ch05-settingenviron"><title>Setting up the environment</title><?dbhtml filename="settingenvironment.html" dir="chapter05"?><para>While logged in as user <emphasis>lfs</emphasis>, issue thefollowing commands to set up a good work environment:</para><para><screen><userinput>cat > ~/.bash_profile << "EOF"</userinput>set +humask 022LFS=/mnt/lfsLC_ALL=POSIXPATH=/tools/bin:$PATHexport LFS LC_ALL PATHunset CC CXX CPP LD_LIBRARY_PATH LD_PRELOAD<userinput>EOFsource ~/.bash_profile</userinput></screen></para><para>The <userinput>set +h</userinput> command turns off<userinput>bash</userinput>'s hash function. Normally hashing is a usefulfeature: <userinput>bash</userinput> uses a hash table to remember thefull pathnames of executable files to avoid searching the PATH time and timeagain to find the same executable. However, we'd like the new tools to beused as soon as they are installed.  By switching off the hash function, our"interactive" commands (<userinput>make</userinput>,<userinput>patch</userinput>, <userinput>sed</userinput>,<userinput>cp</userinput> and so forth) will always usethe newest available version during the build process.</para><para>Setting the user file-creation mask to 022 ensures that newly createdfiles and directories are only writable for their owner, but readable andexecutable for anyone.</para> <para>The LFS variable should of course be set to the mount point youchose.</para><para>The LC_ALL variable controls the localization of certain programs,making their messages follow the conventions of a specified country. If yourhost system uses a version of Glibc older than 2.2.4,having LC_ALL set to something other than "POSIX" or "C" during this chaptermay cause trouble if you exit the chroot environment and wish to return later.By setting LC_ALL to "POSIX" (or "C", the two are equivalent)  we ensure thateverything will work as expected in the chroot environment.</para><para>We prepend <filename>/tools/bin</filename> to the standard PATH sothat, as we move along through this chapter, the tools we build will get usedduring the rest of the building process.</para><para>The CC, CXX, CPP, LD_LIBRARY_PATH and LD_PRELOAD environment variables allhave the potential to cause havoc with our Chapter 5 toolchain. We thereforeunset them to prevent any chance of this happening.</para><para>Now, after sourcing the just-created profile, we're all set to beginbuilding the temporary tools that will support us in later chapters.</para></sect1>
 |