Date: Thu, 20 Aug 1998 13:23:03 +1000 (EST) From: John Birrell <jb@cimlogic.com.au> To: asami@FreeBSD.ORG (Satoshi Asami) Cc: jb@cimlogic.com.au, ports@FreeBSD.ORG, jdp@FreeBSD.ORG Subject: Re: ELF transition for ports (Re: rayshade port) Message-ID: <199808200323.NAA04438@cimlogic.com.au> In-Reply-To: <199808200222.TAA01443@bubble.didi.com> from Satoshi Asami at "Aug 19, 98 07:22:39 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
Satoshi Asami wrote: > By the way, I believe "the other John" (jdp) is also on the ports list > so I'm just going to continue here. John P., feel free to take > yourself out of the CC: list if you are indeed on the list. (haha) jdp's out of town for a few days. > No. I meant after the day the switch is thrown (I'm going to call it > "E-day", for simplicity). We won't be able to generate a.out > libraries anymore, 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-) > > My plan is something like: > > pre-E-day: tell people that they need to be well prepared, in > particuar that they are not supposed to do *anything* (make > world, rebuild ports, etc.) until they understand the procedure > listed below or their system will be hosed > > E-day: you guys throw the switch 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. > 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. > > (2) PRCs edit their /etc/rc to make ldconfig (which I understand is to > remain as an aout-only utility) scan /usr/local/lib/aout and > /usr/X11R6/lib/aout > > (3) PRCs do a make world, reboot > > (4) porters fix ports to correctly build ELF libraries if running on > a 3.0-current system 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. 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. > Eek. You guys think 6 weeks is enough to fix a few dozen ports that > build shared libraries and whatever more that use them? :< 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. > Sorry, but I don't expect 3.0 to ship with too many packages if it's > going to be that late. 6 weeks, of which the last couple need to be > spent in beta testing and package building, is not going to be enough > by a wide margin. 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. > Oh yes, ldconfig. What should we do to find shared libraries now? 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. > If you can get those five to work, that should cover most of the > issues. (I know cvsup is not particularly big but it's very widely > used so I included it here.) Speaking of modula-3 (-lib), it includes > its own shared library directory but I'm assuming jdp will provide an > adequate upgrade procedure with the port so I didn't include it in (1) > above. I'll leave jdp to comment on modula-3. 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. -- John Birrell - jb@cimlogic.com.au; jb@freebsd.org http://www.cimlogic.com.au/ CIMlogic Pty Ltd, GPO Box 117A, Melbourne Vic 3001, Australia +61 418 353 137 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?199808200323.NAA04438>