This is a temporary workaround until the elftoolchain's version
of strip is fixed:
The previous (GNU) strip, when acting on a file with multiple links,
would modify the one and only file in place (which means creating
a new stripped copy, and then writing it back to the original).
The new version from elftoolchain creates the new file and then
unlinks the old one and renames the new.
With multiple hard links, the original remains alive. In the /stand
directory, this ends up creating 80+ copies of the same file.
add a -j option so we can tune the amount of parallel make,
the default we used (-j 8) is large and was giving problems
with SUBDIR_PARALLEL due to some missing dependencies.
Note that svn 257268 gnu/usr.bin/binutils/ld/Makefile
seems to break the "toolchain" target when building HEAD
on RELENG_9, so until this is solved you may want to
svn update -r 257267 gnu/usr.bin/binutils/ld/Makefile
before building picobsd
The fix involved adding a proper build of ld-elf.so.1 ,
and also replacing ldd with objdump (suggested by Garrett Cooper)
to build the list of shared libraries needed by the binaries
and libraries on the target.
improve support for multi-arch and cross-arch builds, by adding
a suffix to the kernel config file and build_directory.
(cross builds not clean yet, a cross-built kernel boots
but fails when starting /sbin/init)
we need to set TARGET and TARGET_ARCH to get a correct WMAKEENV.
I am setting both to i386 since this is what picobsd is used for,
though there might be a better fix.
Add initial support for parallel make. This is disabled right now,
because there are incorrect dependencies somewhere which require
to run picobsd 2-3 times to complete a build.
MFC after: 2 weeks
free from the 2.88MB that we had using El Torito emulation.
The --iso option was already there, just didn't do anything before.
Submitted by: Marta Carbone
MFC after: 3 days
without root privs. This is done, among other things, replacing
the absolute paths in the symlinks with relative paths, so we
do not need to do a chroot to follow them.
Still need to update the manpage.
MFC after: 3 days
have problems with kernels larger than 4MB.
Add a flag to avoid the /boot/loader and use the old method.
Add support for an additional makefile to perform custom manipulation
(this is not documented yet).
Add support for building an ISO image (not complete)
- It is opt-out for now so as to give it maximum testing, but it may be
turned opt-in for stable branches depending on the consensus. You
can turn it off with WITHOUT_SSP.
- WITHOUT_SSP was previously used to disable the build of GNU libssp.
It is harmless to steal the knob as SSP symbols have been provided
by libc for a long time, GNU libssp should not have been much used.
- SSP is disabled in a few corners such as system bootstrap programs
(sys/boot), process bootstrap code (rtld, csu) and SSP symbols themselves.
- It should be safe to use -fstack-protector-all to build world, however
libc will be automatically downgraded to -fstack-protector because it
breaks rtld otherwise.
- This option is unavailable on ia64.
Enable GCC stack protection (aka Propolice) for kernel:
- It is opt-out for now so as to give it maximum testing.
- Do not compile your kernel with -fstack-protector-all, it won't work.
Submitted by: Jeremie Le Hen <jeremie@le-hen.org>
floppy types (in fact, we have only one left!)
Also cleanup some code, using || and && in some places, and
using "export VAR=value" instead of two separate lines.
- use proper make configuration for the build, using
${BINMAKE} as evaluated by ${VERSION}/src/Makefile
- remove -lmytinfo from crunch.conf
- remove support for login_access in tinyware/login
- remove "machine i386" from the kernel config file
It might actually be interesting to extend the script to do
a cross build for !i386 ...
MFC after: 3 days