Date: Wed, 2 Sep 1998 12:37:08 +1000 From: David Dawes <dawes@rf900.physics.usyd.edu.au> To: Joachim Kuebart <joki@kuebart.stuttgart.netsurf.de>, Ollivier Robert <roberto@keltia.freenix.fr> Cc: freebsd-current@FreeBSD.ORG Subject: Re: XFree86 and ELF Message-ID: <19980902123708.A21469@rf900.physics.usyd.edu.au> In-Reply-To: <199809012148.XAA06237@yacht.domestic.de>; from Joachim Kuebart on Tue, Sep 01, 1998 at 11:48:57PM %2B0200 References: <19980901204155.A18859@keltia.freenix.fr> <199809012148.XAA06237@yacht.domestic.de>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Sep 01, 1998 at 11:48:57PM +0200, Joachim Kuebart wrote: >Ollivier Robert wrote: >> According to Joachim Kuebart: >> > --- config/cf/bsdLib.rules.orig Mon Aug 31 18:03:14 1998 >> > +++ config/cf/bsdLib.rules Tue Sep 1 01:15:44 1998 >> > @@ -153,7 +153,7 @@ >> > #define ShLibIncludeFile <bsdLib.tmpl> >> > #endif >> > #ifndef SharedLibraryLoadFlags >> > -#define SharedLibraryLoadFlags -shared -Wl,-rpath,$(USRLIBDIR) >> > +#define SharedLibraryLoadFlags -shared -rpath $(USRLIBDIR) >> >> ...and... >> >> > #ifndef PositionIndependentCFlags >> > #define PositionIndependentCFlags -fPIC >> > @@ -213,7 +213,7 @@ >> > Concat(lib,libname.so.rev): solist @@\ >> > $(RM) $@~ @@\ >> > SONAME=`echo $@ | sed 's/\.[^\.]*$$//'`; \ @@\ >> > - (cd down; $(CC) -o up/$@~ $(SHLIBLDFLAGS) -Wl,-soname,$$SONAME solist $(REQUIREDLIBS) BaseShLibReqs); \ @@\ >> > + (cd down; $(LD) -o up/$@~ $(SHLIBLDFLAGS) -soname $$SONAME solist $(REQUIREDLIBS) BaseShLibReqs); \ @@\ >> >> Why ? Using "gcc" to build the shared lib should work the same as using >> "ld". I don't understand the reason... > >This isn't the only place where SharedLibraryLoadFlags aka. >SHLIBLDFLAGS get used. In most places they are used with $(LD) which >barf on the -Wl construction. I changed this one usage instead of >changing three other places. Can I ask a naive question? Is there any reason the FreeBSD/ELF rules need to be different from those used for Linux/ELF (see lnxLib.cf)? Also, please keep in mind that bsdLib.rules is used for NetBSD and OpenBSD too. >> > -#if defined(Lynx) || (defined(SYSV) || defined(SVR4)) && !defined(ACK_ASSEMBLER) || (defined(linux) || defined(__OS2ELF__)) && defined(__ELF__) >> > +#if defined(Lynx) || (defined(SYSV) || defined(SVR4)) && !defined(ACK_ASSEMBLER) || (defined(__FreeBSD__) || defined(linux) || defined(__OS2ELF__)) && defined(__ELF__) >> > #define GLNAME(a) a >> > #else >> > #define GLNAME(a) CONCAT(_,a) >> >> Should not be necessary if you modify GccAsmFlags to include -D__ELF__ in >> FreeBSD.cf. > >If you look at the condition you will see that __ELF__ only gets >checked on specific operating systems. I made FreeBSD one of the >operating systems where __ELF__ is considered relevant. My preference here is to remove the OS checks, which should simplify that #ifdef a bit. >> > #if defined(__GNUC__) && defined(__i386__) >> > static __inline__ unsigned int reverse_bitorder(data) { >> > -#if defined(Lynx) || (defined(SYSV) || defined(SVR4)) && !defined(ACK_ASSEMBLER) || (defined(linux) || defined (__OS2ELF__)) && defined(__ELF__) >> > +#if defined(Lynx) || (defined(SYSV) || defined(SVR4)) && !defined(ACK_ASSEMBLER) || (defined(__FreeBSD__) || defined(linux) || defined (__OS2ELF__)) && defined(__ELF__) >> > __asm__( >> > "movl $0,%%ecx\n" >> > "movb %%al,%%cl\n" >> >> Same here. gcc already defines __ELF__. > >gcc does define __ELF__, but the XFree86 makefiles use the following >sequence to assemble .s files: > > $(RM) -f $(name).o > $(CPP) -D__ELF__ $(name).s > $(name).i > $(AS) -o $(name).o $(name).i > >Because cpp gets called "manually", __ELF__ needs to be set manually, >too. :-( Right. I see you submitted a patch to XFree86 -- thanks. Maybe it would be a good idea to wait a little while until everything is resolved, then send another patch? I don't have a box running 3.0 ELF yet, but I'm planning to set one up in the next week or two. David 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?19980902123708.A21469>