Date: Wed, 2 Sep 1998 00:41:40 +0200 From: Ollivier Robert <roberto@keltia.freenix.fr> To: freebsd-current@FreeBSD.ORG Subject: Re: XFree86 and ELF Message-ID: <19980902004140.A17784@keltia.freenix.fr> In-Reply-To: <199809011809.UAA16527@yacht.domestic.de>; from Joachim Kuebart on Tue, Sep 01, 1998 at 08:09:40PM %2B0200 References: <199809011809.UAA16527@yacht.domestic.de>
next in thread | previous in thread | raw e-mail | index | archive | help
According to Joachim Kuebart: > The information to build XFree86 is incomplete: > > You need to separately "make configure" and then edit > work/xc/config/cf/xf86site.def to include the line > > #define UseElfFormat YES There is a better way I think. I've completed a "make World" of X11R6.3, using a merge of all posted patches (Doug's & yours) and some mine. The various X servers/lib/programs linked successfully and seems to run fine. > This is due to the fact that I am unaware of a portable way to check > if we're on an ELF system. Bear in mind it might be a prehistoric > -stable version, so it isn't just a question of `objformat`. XFree86 has only releases to consider and 3.0 will be ELF so it is safe IMO to assume that "objformat" will return "elf". Anyway, when you run an ELF FreeBSD, __ELF__ is defined by the preprocessor... Supporting both 3.0/aout and 3.0/ELF may be too complicated. -=-=- Building Release 6.3 of the X Window System. I hope you checked the configuration parameters in ./config/cf to see if you need to pass BOOTSTRAPCFLAGS. Tue Sep 1 22:51:36 CEST 1998 ... Wed Sep 2 00:17:50 CEST 1998 Full build of Release 6.3 of the X Window System complete. -=-=- ldd seems to display some libraries (the one in the path specified with "-rpath" and "-rpath-link"). Is it expected ? -=-=- programs/xdpyinfo/xdpyinfo: libXtst.so.6 => /usr/X11R6/lib/libXtst.so.6 (0x28056000) libXIE.so.6 => /usr/X11R6/lib/libXIE.so.6 (0x2805b000) libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x28065000) libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x2806c000) libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x28076000) libm.so.2 => /usr/lib/libm.so.2 (0x28109000) libc.so.3 => /usr/lib/libc.so.3 (0x28123000) libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x2806c000) libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x28076000) libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x28076000) libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x2806c000) libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x28076000) libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x28076000) -=-=- the diffs. -=-=- diff -ur xc/config/cf/FreeBSD.cf elf-xc/config/cf/FreeBSD.cf --- xc/config/cf/FreeBSD.cf Mon Mar 2 12:55:21 1998 +++ elf-xc/config/cf/FreeBSD.cf Tue Sep 1 22:44:33 1998 @@ -2,7 +2,7 @@ XCOMM platform: $XFree86: xc/config/cf/FreeBSD.cf,v 3.58.2.11 1998/03/01 01:08:59 dawes Exp $ #ifndef OSName -#define OSName DefaultOSName +#define OSName DefaultOSName OSBinaryType #endif #ifndef OSVendor #define OSVendor /**/ @@ -76,6 +76,13 @@ #define HasSetUserContext YES #endif +/* 3.0 and up are ELF */ +#if OSMajorVersion > 2 +#ifndef UseElfFormat +#define UseElfFormat YES +#endif +#endif + /* * This doesn't work the way it does on every other system. On FreeBSD it's * only a "hint, not a demand", whatever that means. Note that this is not @@ -109,11 +116,14 @@ * and they can remove it from the list of directories they add to ld.so.cache * in their /etc/rc file. */ + +#if !UseElfFormat #if OSMajorVersion > 2 || (OsMajorVersion == 2 && OSMinorVersion >= 2) #ifndef ExtraLoadFlags #define ExtraLoadFlags -Wl,-R,$(USRLIBDIRPATH) #endif #endif +#endif #ifndef GnuMallocLibrary #define GnuMallocLibrary -lgnumalloc @@ -217,10 +227,35 @@ #define InstallCmd /usr/bin/install #if GccUsesGas -# define GccGasOption -DGCCUSESGAS -# define AsmDefines -DUSE_GAS +# define GccGasOption -DGCCUSESGAS +# define AsmDefines -DUSE_GAS AsmElfDefines #else # define GccGasOption /**/ +# define AsmDefines AsmElfDefines +#endif + +/* UseElfFormat defaults to YES if __ELF__ set */ +#ifndef UseElfFormat +# ifdef __ELF__ +# undef __ELF__ /* other imake files shouldn't care */ +# define UseElfFormat YES +# else +# define UseElfFormat NO +# endif +#endif + +#if UseElfFormat +# define AsmElfDefines -D__ELF__ +#else +# define AsmElfDefines /**/ +#endif + +#ifndef OSBinaryType +# if UseElfFormat +# define OSBinaryType [ELF] +# else +# define OSBinaryType /**/ +# endif #endif #define ServerExtraDefines GccGasOption XFree86ServerDefines diff -ur xc/config/cf/bsdLib.rules elf-xc/config/cf/bsdLib.rules --- xc/config/cf/bsdLib.rules Sun May 11 07:04:04 1997 +++ elf-xc/config/cf/bsdLib.rules Tue Sep 1 21:27:40 1998 @@ -153,7 +153,7 @@ #define ShLibIncludeFile <bsdLib.tmpl> #endif #ifndef SharedLibraryLoadFlags -#define SharedLibraryLoadFlags -shared -Wl,-rpath,$(USRLIBDIR) +#define SharedLibraryLoadFlags -shared -rpath $(USRLIBDIR) #endif #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); \ @@\ $(RM) $$SONAME; $(LN) $@ $$SONAME; \ @@\ LinkBuildSonameLibrary($$SONAME) @@\ $(RM) $@ @@\ @@ -227,6 +227,21 @@ $(RM) Concat(lib,libname.so.rev) #endif /* SharedLibraryTarget */ + +#ifndef SharedDepModuleTarget +#define SharedDepModuleTarget(name,deps,solist) @@\ +AllTarget(name) @@\ + @@\ +name: deps @@\ + $(RM) $@~ @@\ + $(CC) -o $@~ $(SHLIBLDFLAGS) solist $(REQUIREDLIBS) @@\ + $(RM) $@ @@\ + $(MV) $@~ $@ @@\ + @@\ +clean:: @@\ + $(RM) name + +#endif /* SharedDepModuleTarget */ /* * SharedLibraryDataTarget - generate rules to create shlib data file; diff -ur xc/lib/SM/sm_genid.c elf-xc/lib/SM/sm_genid.c --- xc/lib/SM/sm_genid.c Sat Jan 18 07:51:43 1997 +++ elf-xc/lib/SM/sm_genid.c Tue Sep 1 21:27:40 1998 @@ -60,6 +60,7 @@ #include <socket.h> #endif #include <netinet/in.h> +#include <arpa/inet.h> #define XOS_USE_NO_LOCKING #define X_INCLUDE_NETDB_H #include <X11/Xos_r.h> diff -ur xc/lib/xtrans/Xtransint.h elf-xc/lib/xtrans/Xtransint.h --- xc/lib/xtrans/Xtransint.h Sat Jul 19 06:59:16 1997 +++ elf-xc/lib/xtrans/Xtransint.h Tue Sep 1 21:27:40 1998 @@ -102,6 +102,7 @@ #else #include <socket.h> #endif +#include <arpa/inet.h> #endif #ifdef __EMX__ #include <sys/ioctl.h> diff -ur xc/programs/Xserver/hw/xfree86/os-support/assyntax.h elf-xc/programs/Xserver/hw/xfree86/os-support/assyntax.h --- xc/programs/Xserver/hw/xfree86/os-support/assyntax.h Sun May 11 04:56:22 1997 +++ elf-xc/programs/Xserver/hw/xfree86/os-support/assyntax.h Tue Sep 1 21:27:40 1998 @@ -212,7 +212,7 @@ #endif /* ACK_ASSEMBLER */ -#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) diff -ur xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/s3accel.c elf-xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/s3accel.c --- xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/s3accel.c Mon Mar 2 12:56:24 1998 +++ elf-xc/programs/Xserver/hw/xfree86/vga256/drivers/s3_svga/s3accel.c Tue Sep 1 21:27:40 1998 @@ -798,7 +798,7 @@ #if defined(__GNUC__) && defined(__i386__) static __inline__ CARD32 reverse_bitorder(CARD32 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" diff -ur xc/programs/Xserver/hw/xfree86/xaa/xf86expblt.c elf-xc/programs/Xserver/hw/xfree86/xaa/xf86expblt.c --- xc/programs/Xserver/hw/xfree86/xaa/xf86expblt.c Mon Mar 2 12:56:27 1998 +++ elf-xc/programs/Xserver/hw/xfree86/xaa/xf86expblt.c Tue Sep 1 21:27:40 1998 @@ -83,7 +83,7 @@ #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" diff -ur xc/programs/Xserver/os/connection.c elf-xc/programs/Xserver/os/connection.c --- xc/programs/Xserver/os/connection.c Sat Jul 5 17:55:45 1997 +++ elf-xc/programs/Xserver/os/connection.c Tue Sep 1 21:27:40 1998 @@ -109,6 +109,7 @@ #if defined(TCPCONN) || defined(STREAMSCONN) # include <netinet/in.h> +# include <arpa/inet.h> # ifndef hpux # ifdef apollo # ifndef NO_TCP_H diff -ur xc/programs/xauth/gethost.c elf-xc/programs/xauth/gethost.c --- xc/programs/xauth/gethost.c Sat Jan 18 08:02:10 1997 +++ elf-xc/programs/xauth/gethost.c Tue Sep 1 21:27:40 1998 @@ -58,6 +58,7 @@ #endif #include <netdb.h> #include <netinet/in.h> +#include <arpa/inet.h> #ifdef SYSV #ifdef i386 #ifndef sco diff -ur xc/programs/xdm/chooser.c elf-xc/programs/xdm/chooser.c --- xc/programs/xdm/chooser.c Sat Jan 18 08:02:20 1997 +++ elf-xc/programs/xdm/chooser.c Tue Sep 1 21:27:40 1998 @@ -87,6 +87,7 @@ #include <socket.h> #endif #include <netinet/in.h> +#include <arpa/inet.h> #else /* MINIX */ #include <net/hton.h> #include <net/netlib.h> diff -ur xc/programs/xhost/xhost.c elf-xc/programs/xhost/xhost.c --- xc/programs/xhost/xhost.c Sun Jul 6 09:28:20 1997 +++ elf-xc/programs/xhost/xhost.c Tue Sep 1 21:27:40 1998 @@ -85,9 +85,9 @@ #endif #endif /* NEEDSOCKETS */ -#ifdef notdef +#ifdef __FreeBSD__ #include <arpa/inet.h> - bogus definition of inet_makeaddr() in BSD 4.2 and Ultrix + /* bogus definition of inet_makeaddr() in BSD 4.2 and Ultrix */ #else #if !defined(hpux) && !defined(NCR) && !defined(__EMX__) extern unsigned long inet_makeaddr(); -=-=- -- Ollivier ROBERT -=- FreeBSD: The Power to Serve! -=- roberto@keltia.freenix.fr FreeBSD keltia.freenix.fr 3.0-CURRENT #62: Mon Jul 27 20:47:08 CEST 1998 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?19980902004140.A17784>