My webmail provider updated the design and it keeps on logging me out everytime
I send this. Please delete any double posts/ or triple as this is my third
attempt to send this thing.
I gave it 20 or so minutes to see if any appeared pm the mailing list.
I was hoping to upload the file to the trac and link them here, but I am
currently uncertain as to how.
BTW. HLFS team, heres that community support you were commenting on. I have
spent much time getting this system working and as far as I can tell it is much
more stable that the previous one by the hlfs-dev book. As a warning I
continue to weed out problems that do not relate to pie and other security
related features added this project by not using the security features,
everything else is pretty much closely followed.
---------
TOOLCHAIN:
I am using 2.6.16.16 as the stable kernel headers for this project. This is
probably the only 2.6.* kernel in which is worth being called stable in any
manner. Only use this headers if you want a stable kernel. Due to numerous
changes in the kernel itself using 2.6.12 headers by maz?? will break many
things. There are too many changes and to many programs uses kernel headers.
Most notably is of course anything relating to Xorg and Mesa. If you want the
2.6.12 headers, do not use a kernel past 2.6.13. This will cause numerous
problems and I believe many of those problems that recenlty appeared to the
2.6.14 are related to this. (The kernel just changes to much these days to use
*any* kernel headers for *any* version.
As I have been told by Jerome Pinot, you can use make prepare to generate the
kernel versioning info. As I am sticking with the specific kernel, I did this
once and backed up the version.h file to just copy and paste across.
No problems regarding the toolchain installation arise from these headers.
# make mrproper
# make prepare
# cp -R linux-2.6.16.16/include/asm-i386 /newsystempath/usr/include/asm
# cp -R linux-2.6.16.16/include/asm-generic
/newsystempath/usr/include/asm-generic
# cp -R linux-2.6.16.16/include/linux /newsystempath/usr/include/linux
or
# cp -R linux-2.6.16.16/include/asm-i386 /newsystempath/usr/include/asm
# cp -R linux-2.6.16.16/include/linux /newsystempath/usr/include/linux
# cp /somewheresafe/premadeversion.h /newsytempath/usr/include/linux/version.h
uClibc can now directly use safe kernel headers. (there are only one or two
know problems that I have discovered and they donot effect to toolchain. These
will be discused later.
Follow the instructions from the hlfs-dev book as nothing changes here.
This is part only on uClibc so, the gcc-phase that follows this will be under a
different mailing. (Instead of using headers in the toolchain I have uClibc
getting them from the target system, so the linux source path uClibc uses is
pointed directly to the linux source.
second pass of uClibc is identical to the book as well.
TARGET_SYSTEM:
the linux headers are already installed, so we can skip most of that.
Here is where the problems exist in the kernel headers(all two of them):
1)
2.6.16.* now have the #ifdef __KERNEL__ to allow using kernel headers safely,
but some projects missed some parts (with somewhat good reason):
/usr/include/linux/input.h
is missing the #ifdef __KERNEL__
lines: 796-> 814 where:
struct input_device_id {
is defined and ends
I have a patch I can individually mail, as this posting will be big enough as
is.
2)
/usr/include/linux/config.h:
is a stub-file pointing to a non-existant file (or no-longer existing)
I run this to fix it:
sed -i -e 's|#include <linux/autoconf.h>|//&|'
/newsystempath/usr/include/linux/config.h
The normal binutils -ld stuff would happen here.
Now to the target system's uClibc.
I perform a bootstrap here as the gcc-4.1.0 hardcodes it's specfile, so
uClibc/gcc/binutils will get installed twice.
This first install, the ld gets installed statically. (In the uClibc .cofig
file make sure LD gets linked statically)
I have a series of files and a patch to add more mathlib support that shamefuly
does not exist in uClibc. The following functions are added to the math
library:
llroundf, llroundl, lroundf, lroundl, round, roundf, trunc, truncf.
Once again I can mail these files seperately.
FIRST PASS (bootstrap):
#patch /somewheresafe/uClibc-0.9.28-add_round-1.patch
# cp -v
/somewheresafe/s_{llroundf,llroundl,lroundf,lroundl,round,roundf,trunc,truncf}.c
libm/
perform normal uClibc stuff from this point on, but make sure the LD is
statically linked
DO NOT attempt to install the utils using the CC="gcc
-Wl,--dynamic-linker,...." as the linker is NOT dynamic in this stage.
REMOVE ALL *.a files installed by uClibc (even libc.a)
at this point gcc and binutils get installed (not statically linked)
SECOND PASS (clean install):
same steps as FIRST PASS, except:
LD must now be dynamic and the CC="gcc -WL,.." option should be used on the
utils.
continue to remove libc.a we donot want gcc linking to the static libc file.
(or I donot, the hlfs team may have other reasons for doing this)
uClibc should now be installed without a single problem on gcc-4.1.0. In fact,
it should be better than ever as more standard mathlib functions are there.
The next mailing should be about gcc-4.1.0.
I am doing it this way so discussions can be focused on individual packages.
As a final warning, I disable NLS everywhere on my system, but I am still
currently required to build NLS support into uClibc. My initial gcc-4.1.0
system did, however, include NLS everywhere so my instructions still seem to
apply to both cases.
I hope this helps you guys and the hlfs-team. Please e-mail me for the needed
files, I donot want to flood this list with the numerous patches/hacks/fixes
and other files I have created to get things to work.
- Kevin Day
--
http://linuxfromscratch.org/mailman/listinfo/hlfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page