Bug 109091 - make Xorg from x11-servers/xorg-server port to work on 7-CURRENT
Summary: make Xorg from x11-servers/xorg-server port to work on 7-CURRENT
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-x11 (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-02-12 16:00 UTC by Eygene Ryabinkin
Modified: 2007-02-23 02:30 UTC (History)
0 users

See Also:


Attachments
patch-imake.c (887 bytes, text/x-csrc; charset=us-ascii)
2007-02-18 06:20 UTC, Szilveszter Adam
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Eygene Ryabinkin 2007-02-12 16:00:11 UTC
Starting from the middle of January (not precisely) the Xorg binary,
when built from ports, is unable to start on 7-CURRENT since it can
not dlopen() some required modules (the bitmap module is the most
frequent cause of the errors). Investigation showed that Xorg
lacks the global symbols from the 'loader' subsystem to be
exported for the glopen()/dlsym(). The addition of the --export-dynamic
flag to the 'ld' linker solved that problem.

Not sure that this is related to the recent removal of the objformat,
but I've not investigated this.

Here are two relevant mailing list topics:
http://lists.freebsd.org/pipermail/freebsd-ports/2007-February/038495.html
http://lists.freebsd.org/pipermail/freebsd-current/2007-February/069116.html

The problem is not specific to sparc: it is spotted on sparc64,
i386 and ia64. My fix was tested for i386 and ia64. No answer from
sparc64 side yet.

Fix: 

You should add the following lines to the end of the
files/FreeBSD.cf file:
-----
/*
 * Add --export-dynamic flag for FreeBSD 7.x and later.
 */
#if OSMajorVersion >= 7
#define ExtraLoadOptions -Wl,--export-dynamic
#endif
-----
How-To-Repeat: Install 7-CURRENT, build xorg-server on it and try to start Xorg
binary. It will complain about the libbitmap.so and unresolved
symbols.
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2007-02-12 16:00:26 UTC
Responsible Changed
From-To: freebsd-ports-bugs->freebsd-x11

Over to maintainer
Comment 2 Szilveszter Adam 2007-02-18 06:20:04 UTC
After some investigation I have found a hint to connect this problem to
the removal of objformat(1) on -CURRENT.

In short, the port needs the same patch that was applied to the
devel/imake-6 port because it uses a private copy of the imake sources
during build. I am not sure if it is needed for every xorg port, but
probably all of them need it that build and install libraries.

The patch is trivial and is attached to avoid mangling.
-- 
Regards:

Szilveszter ADAM
Budapest
Hungary
Comment 3 Eygene Ryabinkin 2007-02-19 07:58:57 UTC
> this file FreeBSD.cf doesnt exist

OK, I was in rush and made a mistake. Attaching the proper patch
to the files/patch-FreeBSD.cf
--- patch-patch-FreeBSD.cf begins here ---
--- patch-FreeBSD.cf.orig	Mon Feb 19 10:46:16 2007
+++ patch-FreeBSD.cf	Mon Feb 19 10:45:52 2007
@@ -1,5 +1,5 @@
---- config/cf/FreeBSD.cf.orig	Sun Aug 15 10:03:36 2004
-+++ config/cf/FreeBSD.cf	Sun Feb  6 03:56:59 2005
+--- FreeBSD.cf.orig	Wed May  4 08:14:57 2005
++++ FreeBSD.cf	Mon Feb 19 10:39:59 2007
 @@ -78,6 +78,7 @@
  #define HasIssetugid		YES
  #define HasPoll			YES
@@ -59,9 +59,9 @@
  #  else
  #   define LibraryRpathLoadFlags	-R $(USRLIBDIRPATH)
  #  endif
-@@ -442,7 +444,9 @@
- #define AsVISOption		-Av9a
- #define AsOutputArchSize	64
+@@ -446,7 +448,9 @@
+ #ifdef PpcArchitecture
+ #define XF86INT10_BUILD		X86INT10_STUB
  #endif
 -
 +#ifdef PpcArchitecture
@@ -70,7 +70,7 @@
  #define StandardDefines	-DCSRG_BASED
  
  #if OSMajorVersion > 1
-@@ -463,18 +467,8 @@
+@@ -467,18 +471,8 @@
  #define XawI18nDefines		-DUSE_XWCHAR_STRING -DUSE_XMBTOWC
  #endif
  
@@ -91,3 +91,18 @@
  
  #ifndef PreIncDir
  # define PreIncDir	/usr/include
+@@ -576,6 +570,14 @@
+ #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>
+ 
--- patch-patch-FreeBSD.cf ends here ---

> the file is patch-FreeBSD.cf i put that lines and rebuild xorg-server
> and still have the issue.

What port version do you have? What is the output from the
'elfdump -a /usr/X11R6/bin/Xorg'.

Szilveszter Adam has suggested another workaround, maybe you should
try it. It is on the PR page now.
-- 
Eygene
Comment 4 Eygene Ryabinkin 2007-02-20 05:21:38 UTC
Mon, Feb 19, 2007 at 10:58:56AM +0300, Eygene Ryabinkin wrote:
>
> OK, I was in rush and made a mistake. Attaching the proper patch
> to the files/patch-FreeBSD.cf

I was in a rush again. Here is the correct version of my patch to
files/patch-FreeBSD.cf that will enable the patched patch to find
the file to patch ;))

--- patch-patch-FreeBSD.cf begins here ---
--- patch-FreeBSD.cf.orig	Mon Feb 19 10:46:16 2007
+++ patch-FreeBSD.cf	Mon Feb 19 10:45:52 2007
@@ -1,5 +1,5 @@
---- config/cf/FreeBSD.cf.orig	Sun Aug 15 10:03:36 2004
-+++ config/cf/FreeBSD.cf	Sun Feb  6 03:56:59 2005
+--- config/cf/FreeBSD.cf.orig	Wed May  4 08:14:57 2005
++++ config/cf/FreeBSD.cf	Mon Feb 19 10:39:59 2007
 @@ -78,6 +78,7 @@
  #define HasIssetugid		YES
  #define HasPoll			YES
@@ -59,9 +59,9 @@
  #  else
  #   define LibraryRpathLoadFlags	-R $(USRLIBDIRPATH)
  #  endif
-@@ -442,7 +444,9 @@
- #define AsVISOption		-Av9a
- #define AsOutputArchSize	64
+@@ -446,7 +448,9 @@
+ #ifdef PpcArchitecture
+ #define XF86INT10_BUILD		X86INT10_STUB
  #endif
 -
 +#ifdef PpcArchitecture
@@ -70,7 +70,7 @@
  #define StandardDefines	-DCSRG_BASED
  
  #if OSMajorVersion > 1
-@@ -463,18 +467,8 @@
+@@ -467,18 +471,8 @@
  #define XawI18nDefines		-DUSE_XWCHAR_STRING -DUSE_XMBTOWC
  #endif
  
@@ -91,3 +91,18 @@
  
  #ifndef PreIncDir
  # define PreIncDir	/usr/include
+@@ -576,6 +570,14 @@
+ #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>
+ 
--- patch-patch-FreeBSD.cf ends here ---
-- 
Eygene
Comment 5 dfilter service freebsd_committer freebsd_triage 2007-02-22 21:18:06 UTC
lesi        2007-02-22 21:18:01 UTC

  FreeBSD ports repository

  Modified files:
    x11-servers/xorg-server Makefile.inc 
  Added files:
    x11-servers/xorg-server/files patch-imake.c 
  Log:
  Fix loading modules on current by adding patch from devel/imake-6 since
  local copy of imake is used at configuring. Since FreeBSD versions older
  than 300004 are not supported, simplify patch to just return elf for
  default.
  
  PR:             ports/109091
  Submitted by:   Szilveszter Adam (sziszi at bsd dot hu)
  
  Revision  Changes    Path
  1.18      +2 -1      ports/x11-servers/xorg-server/Makefile.inc
  1.1       +38 -0     ports/x11-servers/xorg-server/files/patch-imake.c (new)
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
Comment 6 lesi freebsd_committer freebsd_triage 2007-02-22 21:42:20 UTC
State Changed
From-To: open->closed

Patch from devel/imake-6 was copied over and simplified a bit. 
Thanks!
Comment 7 Doug Barton freebsd_committer freebsd_triage 2007-02-23 02:01:51 UTC
Just a quick 'me too.' Prior to the port's update today I had the same 
problem, the fix worked.

hth,

Doug

-- 

     This .signature sanitized for your protection