latest xorg port compiles but does not run on sparc64
Eygene Ryabinkin
rea-fbsd at codelabs.ru
Sun Feb 11 15:21:23 UTC 2007
> > > Anyway, I recently got hold of an old Sun Ultra10 which I upgraded from
> > > 6.2-RELEASE to -CURRENT (dated about midnight, 7 feb). At that time no
> > > ports were installed.
> > >
> > > Then I proceeded to build and install the xorg-server port
> > > (xorg-server-6.9.0_6) manually, but it wouldn't run. On startup of X the
> > > rather curious message appeared:
> > >
> > > dlopen: /usr/X11R6/lib/modules/fonts/libbitmap.so: Undefined symbol
> > > "xf86stderr".
> > >
> > > Unfortunately I forgot to make a typescript, so I can't tell if
> > > something went wrong during the build. Building xorg on an ultra10 takes
> > > several hours, so please forgive me for not building a second time.
> > > Meanwhile I got X running using binary packages.
> > >
> > > Does anyone have any clue as to what might have happend? The full
> > > Xorg.log is reproduced below.
I do not know what's happened, but the attached file should go to
the x11-servers/xorg-server/files/ directory and overwrite the original
patch-FreeBSD.cf. Basically, it adds the --export-dynamic flag for
the linker to make global symbols in Xorg to be visible to the
dlopen()/dlsym(), since this is the immediate reason for failures.
> This is related to the removal of objformat from -current. Richard and
> I got his working by installing objformat from my -current box and
> recompiling xorg-server and xorg-libraries.
>
> ./work/xc/lib/Xft/configure: objformat=`test -x /usr/bin/objformat
> && /usr/bin/objformat || echo aout`
> ./work/xc/lib/Xft/configure: version_type=freebsd-$objformat
>
> this is scattered all around in several places in the code.
I will try to look at the objformat changes and
will try to undestand why it broke the things. But this will be done
only tomorrow.
--
Eygene
-------------- next part --------------
--- config/cf/FreeBSD.cf.orig Wed May 4 04:14:57 2005
+++ config/cf/FreeBSD.cf Fri Feb 9 08:26:54 2007
@@ -78,6 +78,7 @@
#define HasIssetugid YES
#define HasPoll YES
#endif
+#define BuildHtmlManPages NO
#if OSMajorVersion >= 4
#define HasGetIfAddrs YES
@@ -116,15 +117,14 @@
# endif
# if (OSRelVersion < 500043)
# define NeedUIThrStubs YES
-# endif
-# if (OSRelVersion >= 502102)
-# define ThreadsLibraries -lpthread
-# elif (OSRelVersion >= 500016)
-# define ThreadsLibraries -lc_r
+# define BuildThreadStubLibrary YES
+# define SharedX11Reqs $(LDPRELIB) $(XTHRSTUBLIB)
+# define SharedXtReqs $(LDPRELIB) $(XONLYLIB) $(SMLIB) $(ICELIB) $(XTHRSTUBLIB)
# else
-# define ThreadsLibraries -pthread
+# define BuildThreadStubLibrary NO
# endif
-# define SystemMTDefines -D_THREAD_SAFE
+# define ThreadsLibraries FreeBSDPTHREAD_LIBS
+# define SystemMTDefines FreeBSDPTHREAD_CFLAGS
#endif
/* This fixes linking C programs against libGLU on FreeBSD 3.x */
@@ -172,12 +172,14 @@
#endif
#endif
-#ifndef CcCmd
-#define CcCmd cc
-#endif
-#ifndef CplusplusCmd
-#define CplusplusCmd c++
+#if BuildThreadStubLibrary && (!defined(UseInstalledX11) || !UseInstalledX11)
+#define CcCmd $(CLIENTENVSETUP) FreeBSDCC
+#define CplusplusCmd $(CLIENTENVSETUP) FreeBSDCXX
+#else
+#define CcCmd FreeBSDCC
+#define CplusplusCmd FreeBSDCXX
#endif
+
#define CppCmd /usr/bin/cpp
#define PreProcessCmd CppCmd
#define StandardCppOptions -traditional
@@ -338,7 +340,7 @@
#ifndef LibraryRpathLoadFlags
# if UseRpath
# if UseElfFormat
-# define LibraryRpathLoadFlags -rpath $(USRLIBDIRPATH)
+# define LibraryRpathLoadFlags -Wl,-rpath $(USRLIBDIRPATH)
# else
# define LibraryRpathLoadFlags -R $(USRLIBDIRPATH)
# endif
@@ -446,7 +448,9 @@
#ifdef PpcArchitecture
#define XF86INT10_BUILD X86INT10_STUB
#endif
-
+#ifdef PpcArchitecture
+#define XF86INT10_BUILD X86INT10_STUB
+#endif
#define StandardDefines -DCSRG_BASED
#if OSMajorVersion > 1
@@ -467,18 +471,8 @@
#define XawI18nDefines -DUSE_XWCHAR_STRING -DUSE_XMBTOWC
#endif
-/* The GCC strength-reduce bug is fixed for FreeBSD 2.1.5 and later */
-#ifndef DefaultGcc2i386Opt
-#if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion > 1) || (OSMajorVersion == 2 && OSMinorVersion == 1 && OSTeenyVersion >= 5)
-#define DefaultGcc2i386Opt -O2 GccAliasingArgs
-#endif
-#endif
-
-#ifdef i386Architecture
-# define OptimizedCDebugFlags DefaultGcc2i386Opt
-#else
-# define OptimizedCDebugFlags -O
-#endif
+#define DefaultGcc2i386Opt
+#define OptimizedCDebugFlags FreeBSDCFLAGS
#ifndef PreIncDir
# define PreIncDir /usr/include
@@ -575,6 +569,13 @@
*/
#if (GccMajorVersion == 2 && GccMinorVersion == 95)
#define GccOptBug295
+#endif
+
+/*
+ * Add --export-dynamic flag for FreeBSD 7.x and later.
+ */
+#if OSMajorVersion >= 7
+#define ExtraLoadOptions -Wl,--export-dynamic
#endif
#include <bsdLib.rules>
More information about the freebsd-current
mailing list