Date: Wed, 10 Jun 1998 12:33:52 -0500 From: "Jason" <jes@hal-pc.org> To: <freebsd-current@FreeBSD.ORG> Subject: Re: ELF preparation step 2 done Message-ID: <01bd9495$ef551350$016f6f6f@jason.vipersystems.com>
next in thread | raw e-mail | index | archive | help
>The & of all Evil wrote:
>> "Brian Feldman" <brianfeldman@hotmail.com> writes:
>>
>> > Well, after making world and having all /usr/libexec/{elf,aout}, I
guess one could make an ELF world in a couple steps, if they're interested:
>> > 1. export BINFORMAT=elf and make usr.bin/objformat, and make install it
>> > 2. go to lib/, 'echo "BINFORMAT=elf" > /etc/objectformat' and make all
the libs, and install them (to /usr/lib? mine installed there, I moved them
to /usr/lib/elf, should the elf libs really be there or just /usr/lib?)
>> > 3. make the world; it _should_ work now, but I didn't try it
> ^^^^^^^^^^^^^^^^^^^
>Obviously.
>
>>
>> singularity:/usr/src/lib 14# make all
>> ===> libcom_err
>> cc -O -pipe -c /usr/src/lib/libcom_err/com_err.c -o com_err.o
>> Unrecognized line in /etc/objectformat: BINFORMAT=elf
>> Unrecognized line in /etc/objectformat: BINFORMAT=elf
>> com_err.o: file not recognized: File format not recognized
>
>A few things (not necessarily all) you need to do:
>
>1. Make world to get aout and elf tools (built as aout executables) in
> their new places and objformat installed in /usr/bin.
>2. chflags -R noschg /usr/obj/usr/src/tmp
>3. rm -rf /usr/obj/*
>4. Create /etc/objectformat with the line OBJFORMAT=elf
>5. Add BINFORMAT=elf to /etc/make.conf
>6. cd /usr/src/csu/i386-elf; make obj/depend/all/install
>7. cd /usr/src/gnu/usr.bin/cc/libgcc; make obj/depend/all/install
>8. cd /usr/src/lib/libc; make obj/depend/all/install
>9. cd /usr/src/libexec/rtld-elf; make obj/depend/all/install
>10. cd /usr/src/lib; make obj/depend/all/install
>11. cd /usr/src/gnu/lib; make obj/depend/all/install
>12. cd /usr/src; make obj/depend/all/install
>
>I have tried this. Step 12 bombs in src/gnu/usr.bin/ld.
The big problem is make.conf isn't included soon enough to get the
BINFORMAT=elf, instead it relies on test mostly of
.if ${MACHINE} == "alpha"
BINFORMAT?= elf
.else
BINFORMAT?= aout
.endif
This is also why when building elf libraries that they are installed by
default into /usr/lib/aout. Can you say bad magic number?
This needs to be fixed to get an elf machine with a buildworld/makeworld.
One work around maybe to go into your src/share/mk directory and at the top
of each makefile put a BINFORMAT=elf just to be shure.
-Jason-
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?01bd9495$ef551350$016f6f6f>
