atom feed48 messages in org.freebsd.freebsd-currentRe: XFree86 and ELF
FromSent OnAttachments
Tugrul GalataliAug 31, 1998 12:15 pm 
John PolstraAug 31, 1998 1:17 pm 
Doug RabsonAug 31, 1998 2:08 pm 
Tugrul GalataliAug 31, 1998 4:22 pm 
AlexAug 31, 1998 6:00 pm 
David DawesAug 31, 1998 7:58 pm 
Doug RabsonSep 1, 1998 12:57 am 
AlexSep 1, 1998 1:20 am 
Joachim KuebartSep 1, 1998 9:54 am 
Joachim KuebartSep 1, 1998 11:09 am 
Ollivier RobertSep 1, 1998 11:41 am 
Joachim KuebartSep 1, 1998 2:48 pm 
Ollivier RobertSep 1, 1998 3:41 pm 
Satoshi AsamiSep 1, 1998 3:51 pm 
Satoshi AsamiSep 1, 1998 4:46 pm 
Joachim KuebartSep 1, 1998 5:03 pm 
Terry LambertSep 1, 1998 6:27 pm 
John PolstraSep 1, 1998 6:28 pm 
David DawesSep 1, 1998 7:36 pm 
David DawesSep 1, 1998 8:07 pm 
John BirrellSep 1, 1998 8:52 pm 
Joel Ray HolveckSep 1, 1998 9:06 pm 
John PolstraSep 1, 1998 9:15 pm 
John PolstraSep 1, 1998 9:18 pm 
John PolstraSep 1, 1998 9:19 pm 
Joachim KuebartSep 1, 1998 10:35 pm 
Joachim KuebartSep 1, 1998 10:39 pm 
Joachim KuebartSep 1, 1998 10:40 pm 
Joel Ray HolveckSep 1, 1998 10:55 pm 
Joachim KuebartSep 1, 1998 10:55 pm 
David DawesSep 1, 1998 11:12 pm 
John BirrellSep 2, 1998 12:10 am 
Ollivier RobertSep 2, 1998 12:12 am 
Satoshi AsamiSep 2, 1998 12:14 am 
Terry LambertSep 2, 1998 12:23 am 
Terry LambertSep 2, 1998 1:00 am 
John PolstraSep 2, 1998 8:53 am 
Joachim KuebartSep 2, 1998 9:05 am 
Ollivier RobertSep 2, 1998 2:39 pm 
Chuck RobeySep 2, 1998 3:19 pm 
Ollivier RobertSep 2, 1998 10:50 pm 
Warner LoshSep 2, 1998 11:10 pm 
David DawesSep 3, 1998 4:33 am 
David DawesSep 3, 1998 4:50 am 
Doug RabsonSep 3, 1998 1:29 pm 
David DawesSep 4, 1998 1:00 am 
David O'BrienSep 9, 1998 8:23 pm 
John PolstraSep 9, 1998 10:40 pm 
Subject:Re: XFree86 and ELF
From:David Dawes (daw@rf900.physics.usyd.edu.au)
Date:Sep 1, 1998 7:36:47 pm
List:org.freebsd.freebsd-current

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 majo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message