Ping Huang wrote:
> 1. As stage of make -C sys dependall, building failed in bootxx_ext2fs
> directory, with the error message "bootxx_ext2fs size 8420 is larger
> than 7680".
Do not worry for that file: it is not used anyway; currently MINIX only
boots from a MinixFS (bootxx_minixfs3), and it does so using special
tricks in the partition layout; in order to boot from a ext2 file system
(or UFS, or FAT), you need to set up things manually anyway.
Furthermore, the 15 sectors limit applies when you are installing that
file as part of a NetBSD disklabel (where there is only 15 sectors free,
hence the limit), and I do not believe anybody is using that.
On the other hand, it is important to know there is a problem here,
because it is likely to affect NetBSD (which is using the same boot
loader) when/if they switch to GCC 4.7.
> 2. As stage of make install, After commands/make/make is installed,
> the install opertion will fail. The cause is that setenv is called
> before __libc_env_init (__libc_env_init is called by __libc_init).
> However, I don't really see where __libc_init is called by make. Does
> anyone encounter the problem before?
This one, or things seeming it, is something we already saw, but the
reverse way, when we switched to clang! If I understand correctly, we
solved it installing our own crtbegin.o and crtend.o in /usr/lib,
compiled for clang, which adequately calls the constructors within
crti.o, which is in turn from where __libc_init() is called.
Since GCC comes with its own version of crtstuff, I guess the problem is
that the GCC version is picked up, and that either it does not look for
or call the /usr/lib/crti.o stuff, or it does it at the wrong moment
> 3. Also in stage of make install, when install memory, mkimage failed.
Do you mean, mkimage is failing while processing memory?
Mkimage processes all the boot-time services in a row, to adjust their
start address to be one after the other in the final memory map; if it
stumps on the first service, ds, then the problem is likely to be with
our code; but if the problem occurs only for memory, which is the 8th
service examined, then it is likely to be a specific problem with it.
Memory is special in two ways: it is by far the biggest service, because
it embeds the initial file system; and it is built from two object
(relocatable) files, one [memory.o] being normal but the other one,
imgrd.o, is created with objcopy.
Antoine