Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Aug 1998 23:58:21 -0700 (PDT)
From:      asami@FreeBSD.ORG (Satoshi Asami)
To:        jb@cimlogic.com.au
Cc:        jb@cimlogic.com.au, ports@FreeBSD.ORG, jdp@FreeBSD.ORG
Subject:   Re: ELF transition for ports (Re: rayshade port)
Message-ID:  <199808200658.XAA04044@silvia.hip.berkeley.edu>
In-Reply-To: <199808200323.NAA04438@cimlogic.com.au> (message from John Birrell on Thu, 20 Aug 1998 13:23:03 %2B1000 (EST))

next in thread | previous in thread | raw e-mail | index | archive | help
 * From: John Birrell  <jb@cimlogic.com.au>

 * jdp's out of town for a few days.

Oops, you're right.

 * No. All the tools will still be there to build aout things for an unspecified
 * time after 3.0. The default will be elf, but you can set OBJFORMAT=aout
 * and things will work the way they do today.
 * 
 * I know it is possible to set OBJFORMAT=aout and do a make world, converting
 * you back to aout. 8-)

Oh, ok.

 * The problem I see with this is that people will only convert when they're
 * ready. All I need to do is commit the makefiles that contain support for
 * the upgrade. aout->aout will still work (I have tested that). aout->elf
 * is a special make step that ends up with /etc/objectformat set to
 * OBJFORMAT=elf and all the elf csu objects, libraries, shared loader
 * installed. After that elf->elf is the default for that end-user system.

Oh, ok.  So E-day is actually when people decide to throw the switch
on *their* system.

 * > post-E-day:
 * > 
 * >  (1) people running current (PRCs) do a "for i in /usr/local
 * >      /usr/X11R6; do cd $i/lib; mkdir aout; mv lib*.so* aout; mv lib*.a
 * >      aout; done"
 * 
 * This should be done by the aout->elf transition procedure.
                                        ^^^^^^^^^^^^^^^^^^^^
You mean the first make world with OBJFORMAT=elf?

 * Since 2.2.X must be supported on aout and 3.0-current might not have
 * been converted to elf, it would be best if we could find a way of making
 * bsd.port.mk (3.0 version) OBJFORMAT aware.

Ok.  I'm not sure what bsd.port.mk has to do, though.  It's the
individual ports that need to be OBJFORMAT (not OSREL as I said
before) aware.

 * I'm hoping that most ports build their libraries in a normal way so
 * that with OBJFORMAT=elf automatically setting the right tools, things
 * will not need many changes.

If you mean "using bsd.lib.mk" by "normal way", I don't think many
ports do that.  Remember, these are not our software, porters' jobs
are to make minimal changes to the distributed version to adapt to our
system.  Ripping out shared library support of the original software
and swapping it with bsd.lib.mk was *not* the recommended way of
porting (that kind of change are very unlikely to be accepted by the
original author, and we'll have to keep patching over and over when
new releases come out).

 * I guess I might be being naiive, but I'm trying to avoid breaking
 * things so badly that we create this amount of work. With the exception
 * of ldconfig, I can't see that an elf system looks too different
 * from an aout one from the perspective of the ports makefiles.

For consumers of libraries, no, I don't think it's too different.  I'm
worried about ports that generate libraries.  Speaking of which, is
XFree86 ready for FreeBSD-elf?  (Will x11/XFree86 port build elf
libraries and binaries if OBJFORMAT=elf? :)

 * Well if that is a hurdle which can't be overcome (by finding a simple
 * conversion procedure), then it might be necessary to ship aout packages.
 * We can't just break a large slice of the release just because we're
 * trying to go elf.

That's sort of defeating the purpose, I'm afraid.  If we're going to
go elf for the release, we should go all the way, including ports.
Otherwise there's no need to do it in the first place.

If it breaks a lot of ports, maybe that will give people extra
incentives to fix them. :)

By the way, is 3.0R going to ship with a.out shared libraries too?

 * I think we need a tool to do that. Making ldconfig elf aware just so
 * we get the search functionality might be an option even though the
 * elf shared loader won't use the hints file.

That's probably the right thing to do.  ldconfig is used in so many
PLISTs, I don't look forward to trying to fix them to look at
OBJFORMAT or some such.

 * I have plenty of disk space on my scratch machine, so I'll try the ports
 * you suggest. I will start with the assumption that they build on aout
 * and try building them on a clean elf system to see what issues there are.
 * To do this I'll hack ldconfig to use ld-elf.so.hints if OBJFORMAT=elf
 * and we can decide later if that's the way we want to query installed
 * libraries.

Thanks.

Satoshi

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199808200658.XAA04044>