IPCop is compiled following LFS method with first step cross-compiled.
Some deviations are inspired by DIY, HLFS or distrib like debian/Fedora/Gentoo.
In particular, binutils, gcc, glibc are mostly compiled like debian (on sid actually).

We compile the entire toolchain as a big package, wich avoid us to recompile the
toolchain when no change is made there.

Our compilation is directed to a target cpu (on ix86 with -march=i486 -mtune=pentium)

Compilation is hardened
 glibc with --enable-stackguard-randomization
 CFLAGS/CXXFLAGS with -D_FORTIFY_SOURCE=2 -fstack-protector-all -fPIE -Wl,-z,now

To reduce overhead, LDFLAGS="-Wl,--hash-style=gnu" is set in make.sh (instead of the default both)

The objectives are to compile
- a 32-bits userspace on all arch except alpha
- a 32-bits kernel on ix86, ppc
- a 64-bits kernel on ultrasparc, ppc64?, x86_64?

Toolchain headers are still in use after stage2 :
- during linux-headers make headers_check
- some binutils tests need include/c++ headers to compile

TODO
- should we disable multilib on i486 like LFS but DIY do not?
- evaluate debian gcc-default-ssp patch wich add -fstack-protector in gcc specs
- evaluate debian gcc-hash-style-gnu patch wich add hash-style=gnu in gcc specs (Fedora do that since long time)
- evaluate adding -Wl,-O1 to CFLAGS or gcc specs
- evaluate debian gcc-default-format-security patch?
- TEXREL on libs (not so good, seen for example using scanelf -qtR ./build_i486/ipcop/*
- check RPATH (look not to bad, seen for example using scanelf -qrR ./build_i486/ipcop/* )

* note scanelf from pax-utils is not a requirement but easier to work
mklibs-readelf (already available) may be used for RPATH.
Or we could have same result inside our chroot with a script that 
- check that a file is an elf file
- then use readelf -d | grep TEXTREL or RPATH
