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