Date: Tue, 1 Sep 1998 23:48:57 +0200 (CEST) From: Joachim Kuebart <joki@kuebart.stuttgart.netsurf.de> To: roberto@keltia.freenix.fr (Ollivier Robert) Cc: freebsd-current@FreeBSD.ORG Subject: Re: XFree86 and ELF Message-ID: <199809012148.XAA06237@yacht.domestic.de> In-Reply-To: <19980901204155.A18859@keltia.freenix.fr> from Ollivier Robert at "Sep 1, 98 08:41:55 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
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.
> > -#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.
> > #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. :-(
cu Jo
---------------------------------------------------------------------
FreeBSD: The Power to Serve <http://www.freebsd.org>
Joachim Kuebart
Tel: +49 711 653706 Oh god, god... My tongue is asleep and
Germany my teeth itch.
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?199809012148.XAA06237>
