From: Eygene Ryabinkin on

--zhXaljGHf11kAtnf
Content-Type: text/plain; charset=koi8-r
Content-Disposition: inline

> After buildworld and buildkernel I have done a 'make delete-old-libs' and
> removed objformat. I think now we are on the right path ...

I've managed to get xorg-server to run at 7-CURRENT. The attached file
should be put into the files/ directory of the xorg-server port (the
existing file should be overwritten). It works for me, so, please, test
it.

I've not been able to spot the deep reason, but the immediate reason
for failures was that no external symbols from the libraries were exported
in the 'Xorg' binary for the dlopen() function. The addition of
--export-dynamic flag to the 'ld' program solved the problem.

I will try to understand if objformat changes are related to this problem.
Jiawei, thanks for the pointer.
--
Eygene

--zhXaljGHf11kAtnf
Content-Type: text/plain; charset=koi8-r
Content-Disposition: attachment; filename="patch-FreeBSD.cf"

--- 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>

--zhXaljGHf11kAtnf
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
freebsd-ports(a)freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscribe(a)freebsd.org"
--zhXaljGHf11kAtnf--
From: Rainer Hurling on
Eygene, thank you for the patch. I tried it as described, and it seems
to work (7-CURRENT on amd64 from 02/10/2007, no objformat).

The next five days I am on business trip and so not able to test
anything, sorry.

Rainer


Eygene Ryabinkin schrieb:
>> After buildworld and buildkernel I have done a 'make delete-old-libs' and
>> removed objformat. I think now we are on the right path ...
>
> I've managed to get xorg-server to run at 7-CURRENT. The attached file
> should be put into the files/ directory of the xorg-server port (the
> existing file should be overwritten). It works for me, so, please, test
> it.
>
> I've not been able to spot the deep reason, but the immediate reason
> for failures was that no external symbols from the libraries were exported
> in the 'Xorg' binary for the dlopen() function. The addition of
> --export-dynamic flag to the 'ld' program solved the problem.
>
> I will try to understand if objformat changes are related to this problem.
> Jiawei, thanks for the pointer.

_______________________________________________
freebsd-ports(a)freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscribe(a)freebsd.org"