Opened 8 years ago

Closed 7 years ago

Last modified 6 years ago

#36055 closed defect (wontfix)

Tiger PPC: xorg-server-1.13.0 fails to build on Tiger PPC because of multiple definitions of symbol _XkbFreeGeomOverlayKeys?

Reported by: ballapete (Peter Dyballa) Owned by: jeremyhu (Jeremy Huddleston Sequoia)
Priority: Normal Milestone:
Component: ports Version: 2.1.2
Keywords: tiger Cc: cooljeanius (Eric Gallager), mikeformac@…, ryandesign (Ryan Schmidt)
Port: xorg-server

Description

This is the near the failure:

libtool: link: /usr/bin/gcc-4.0 -std=gnu99 -DHAVE_DIX_CONFIG_H -Wall -Wpointer-arith -Wmissing-declarations -Wformat=2 -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wbad-function-cast -Wold-style-definition -Wdeclaration-after-statement -Wunused -Wuninitialized -Wshadow -Wcast-qual -Wmissing-noreturn -Wmissing-format-attribute -Wredundant-decls -fno-strict-aliasing -fno-strict-aliasing -D_BSD_SOURCE -DHAS_FCHOWN -DHAS_STICKY_DIR_BIT -I/opt/local/include -I/opt/local/include/pixman-1 -I/opt/local/include/freetype2 -I../../../include -I../../../include -I../../../Xext -I../../../damageext -I../../../xfixes -I../../../Xi -I../../../mi -I../../../miext/sync -I../../../miext/shadow -I../../../miext/damage -I../../../render -I../../../randr -I../../../fb -I../../../dbe -pipe -O2 -arch ppc -DROOTLESS_WORKAROUND -DROOTLESS_SAFEALPHA -DNO_ALLOCA -Objc -Wl,-u -Wl,_miDCInitialize -Wl,-framework -Wl,Carbon -Wl,-framework -Wl,Cocoa -Wl,-framework -Wl,CoreAudio -Wl,-framework -Wl,IOKit -Wl,-framework -Wl,OpenGL -arch ppc -o X11.bin bundle-main.o strndup.o mach_startupServer.o mach_startupUser.o ../../../dix/.libs/dixfonts.o  -lXplugin -L/opt/local/lib ../../../hw/xquartz/.libs/libXquartz.a ../../../hw/xquartz/xpr/.libs/libXquartzXpr.a ../../../miext/rootless/.libs/librootless.a ../../../hw/xquartz/pbproxy/.libs/libxpbproxy.a /opt/local/lib/libAppleWM.dylib /opt/local/lib/libXext.dylib /opt/local/lib/libXfixes.dylib /opt/local/lib/libX11.dylib /opt/local/lib/libxcb.dylib ../../../dix/.libs/libmain.a ../../../fb/.libs/libfb.a ../../../xfixes/.libs/libxfixes.a ../../../Xext/.libs/libXext.a ../../../dbe/.libs/libdbe.a ../../../randr/.libs/librandr.a ../../../render/.libs/librender.a ../../../damageext/.libs/libdamageext.a ../../../miext/sync/.libs/libsync.a ../../../miext/damage/.libs/libdamage.a ../../../miext/shadow/.libs/libshadow.a ../../../Xi/.libs/libXi.a ../../../xkb/.libs/libxkb.a ../../../xkb/.libs/libxkbstubs.a ../../../dix/.libs/libdix.a ../../../mi/.libs/libmi.a ../../../os/.libs/libos.a ../../../hw/xquartz/GL/.libs/libCGLCore.a ../../../glx/.libs/libglx.a ../../../record/.libs/librecord.a /opt/local/lib/libpixman-1.dylib -lpthread /opt/local/lib/libXfont.dylib /opt/local/lib/libfreetype.dylib -lbz2 /opt/local/lib/libfontenc.dylib -lz /opt/local/lib/libXau.dylib /opt/local/lib/libXdmcp.dylib -lm -framework ApplicationServices
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _serverGeneration
../../../dix/.libs/libdix.a(globals.o) definition of _serverGeneration in section (__DATA,__data)
/opt/local/lib/libXfont.dylib(miscutil.o) definition of _serverGeneration
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: multiple definitions of symbol _XkbFreeGeomOverlayKeys
/opt/local/lib/libX11.dylib(single module) definition of _XkbFreeGeomOverlayKeys
../../../xkb/.libs/libxkb.a(XKBGAlloc.o) definition of _XkbFreeGeomOverlayKeys in section (__TEXT,__text)
collect2: ld returned 1 exit status
make[4]: *** [X11.bin] Error 1
make[4]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_x11_xorg-server/xorg-server/work/xorg-server-1.13.0/hw/xquartz/mach-startup'

The failure is the same as with xorg-server-devel 1.12.99.905.

Attachments (4)

main.log (4.2 MB) - added by ballapete (Peter Dyballa) 8 years ago.
xorg-server main.log
main.2.log (4.1 MB) - added by ballapete (Peter Dyballa) 8 years ago.
xorg-server-devel main.log
main.3.log (4.1 MB) - added by ballapete (Peter Dyballa) 8 years ago.
xorg-server-devel-1.13.99.0 main.log
main.4.log (4.0 MB) - added by ballapete (Peter Dyballa) 7 years ago.
main.log from xorg-server-devel 1.13.99.901_1

Change History (31)

Changed 8 years ago by ballapete (Peter Dyballa)

Attachment: main.log added

xorg-server main.log

Changed 8 years ago by ballapete (Peter Dyballa)

Attachment: main.2.log added

xorg-server-devel main.log

comment:1 Changed 8 years ago by ryandesign (Ryan Schmidt)

Cc: jeremyhu@… removed
Owner: changed from macports-tickets@… to jeremyhu@…

comment:2 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)

I no longer have my Tiger box. You're pretty much on your own for finding a fix, sorry...

comment:3 Changed 8 years ago by ballapete (Peter Dyballa)

xorg-server-devel-1.13.99.0 cannot be built because of the same failure.

Changed 8 years ago by ballapete (Peter Dyballa)

Attachment: main.3.log added

xorg-server-devel-1.13.99.0 main.log

comment:4 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Yep. This will remain broken until someone with a Tiger machine fixes it.

comment:5 in reply to:  4 Changed 8 years ago by ballapete (Peter Dyballa)

Replying to jeremyhu@…:

Yep. This will remain broken until someone with a Tiger machine fixes it.

I actually do not understand what the compiler is trying to say. (I never learned these subtleties.)

It seems to me that there is a function – obviously – in /opt/local/lib/libXfont.dylib – obviously, because the symbol is inside a library –, coming from the object file miscutil.o. And there is another library, dix/.libs/libdix.a, which has from the object file globals.o, which it is built from, another definition of that symbol, _serverGeneration.

libXfont-1.4.5/src/util/miscutil.c has:

   48	#ifndef NO_WEAK_SYMBOLS
   49	/* make sure everything initializes themselves at least once */
   50	weak long serverGeneration = 1;
   51	#endif

xorg-server-devel-1.13.99.0/dix/globals.c has:

   88	unsigned long serverGeneration = 0;

So it seems that the symbol _serverGeneration is indeed only a variable, serverGeneration, casted a bit differently. If that's the problem, the same global variable defined and initialised twice, then the cure might be to make it local to dix which uses it a few times:

./dix/dixfonts.c:1966:    if (last_server_gen < serverGeneration) {
./dix/dixfonts.c:1967:        last_server_gen = serverGeneration;
./dix/globals.c:88:unsigned long serverGeneration = 0;
./dix/main.c:155:        serverGeneration++;
./dix/main.c:168:        if (serverGeneration == 1) {

Or using a different name for it. (Changes in libXfont might be more complicated. Or it might be useful to use it weakly, i.e., let dix initialise it?)

xorg-server-devel-1.13.99.0/xkb/XKBGAlloc.c has:

  241  void
  242  XkbFreeGeomOverlayKeys(XkbOverlayRowPtr row, int first, int count, Bool freeAll)
  243  {
  244      _XkbFreeGeomLeafElems(freeAll, first, count,
  245                            &row->num_keys, &row->sz_keys,
  246                            (char **) &row->keys, sizeof(XkbOverlayKeyRec));
  247      return;
  248  }

If that obvious function is already contained in /opt/local/lib/libX11.dylib (/opt/local/lib/libX11.dylib:single module: 0007e800 T _XkbFreeGeomOverlayKeys), then the solution seems to be either to remove it from libX11 or to make xkb use that library function. Xkb uses that function not at all:

./XKBGAlloc.c:242:XkbFreeGeomOverlayKeys(XkbOverlayRowPtr row, int first, int count, Bool freeAll)
./xkbgeom.h:402: XkbFreeGeomOverlayKeys(XkbOverlayRowPtr /* row */ ,

The first use is already documented here, the second use is this:

  401	extern void
  402	 XkbFreeGeomOverlayKeys(XkbOverlayRowPtr /* row */ ,
  403	                        int /* first */ ,
  404	                        int /* count */ ,
  405	                        Bool    /* freeAll */
  406	    );

which looks like a correct and necessary declaration in C. So the function definition in xorg-server-devel-1.13.99.0/xkb/XKBGAlloc.c should be removed. And possibly there could be some more similar cases… (for example: /opt/local/lib/libX11.dylib:single module: 0010817c D XkbInternAtomFunc and in xorg-server-devel-1.13.99.0/xkb/xkmread.c)

comment:6 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Changing the name is not the solution. They're *supposed* to collide and resolve to the same thing.

What is the output of:

$ nm -m /opt/local/lib/libXfont.dylib | grep _serverGeneration

Can you try activating an older version of libXfont and seeing if the server will build with it? Will an older server build with the current libXfont?

comment:7 in reply to:  6 Changed 8 years ago by ballapete (Peter Dyballa)

Replying to jeremyhu@…:

Changing the name is not the solution. They're *supposed* to collide and resolve to the same thing.

What is the output of:

$ nm -m /opt/local/lib/libXfont.dylib | grep _serverGeneration
         (undefined) external _serverGeneration
         (undefined) external _serverGeneration
0002e990 (__DATA,__data) external _serverGeneration

Can you try activating an older version of libXfont and seeing if the server will build with it? Will an older server build with the current libXfont?

I can try to build an earlier version, I don't keep much outdated versions…

comment:8 in reply to:  6 Changed 8 years ago by ballapete (Peter Dyballa)

Replying to jeremyhu@…:

Changing the name is not the solution. They're *supposed* to collide and resolve to the same thing.

What is the output of:

$ nm -m /opt/local/lib/libXfont.dylib | grep _serverGeneration

With xorg-libXfont @1.4.4 I get:

0002ef90 (__DATA,__data) external _serverGeneration

And there are a few new build failures:

libtool: link: /usr/bin/gcc-4.0 -std=gnu99 -DHAVE_DIX_CONFIG_H -Wall -Wpointer-arith -Wmissing-declarations -Wformat=2 -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wbad-function-cast -Wold-style-definition -Wdeclaration-after-statement -Wunused -Wuninitialized -Wshadow -Wcast-qual -Wmissing-noreturn -Wmissing-format-attribute -Wredundant-decls -fno-strict-aliasing -fno-strict-aliasing -D_BSD_SOURCE -DHAS_FCHOWN -DHAS_STICKY_DIR_BIT -I/opt/local/include -I/opt/local/include/pixman-1 -I/opt/local/include/freetype2 -I../../../include -I../../../include -I../../../Xext -I../../../damageext -I../../../xfixes -I../../../Xi -I../../../mi -I../../../miext/sync -I../../../miext/shadow -I../../../miext/damage -I../../../render -I../../../randr -I../../../fb -I../../../dbe -pipe -O2 -arch ppc -DROOTLESS_WORKAROUND -DROOTLESS_SAFEALPHA -DNO_ALLOCA -Objc -Wl,-u -Wl,_miDCInitialize -Wl,-framework -Wl,Carbon -Wl,-framework -Wl,Cocoa -Wl,-framework -Wl,CoreAudio -Wl,-framework -Wl,IOKit -Wl,-framework -Wl,OpenGL -arch ppc -o X11.bin bundle-main.o strndup.o mach_startupServer.o mach_startupUser.o ../../../dix/.libs/dixfonts.o  -lXplugin -L/opt/local/lib ../../../hw/xquartz/.libs/libXquartz.a ../../../hw/xquartz/xpr/.libs/libXquartzXpr.a ../../../miext/rootless/.libs/librootless.a ../../../hw/xquartz/pbproxy/.libs/libxpbproxy.a /opt/local/lib/libAppleWM.dylib /opt/local/lib/libXext.dylib /opt/local/lib/libXfixes.dylib /opt/local/lib/libX11.dylib /opt/local/lib/libxcb.dylib ../../../dix/.libs/libmain.a ../../../fb/.libs/libfb.a ../../../xfixes/.libs/libxfixes.a ../../../Xext/.libs/libXext.a ../../../dbe/.libs/libdbe.a ../../../randr/.libs/librandr.a ../../../render/.libs/librender.a ../../../damageext/.libs/libdamageext.a ../../../miext/sync/.libs/libsync.a ../../../miext/damage/.libs/libdamage.a ../../../miext/shadow/.libs/libshadow.a ../../../Xi/.libs/libXi.a ../../../xkb/.libs/libxkb.a ../../../xkb/.libs/libxkbstubs.a ../../../dix/.libs/libdix.a ../../../mi/.libs/libmi.a ../../../os/.libs/libos.a ../../../hw/xquartz/GL/.libs/libCGLCore.a ../../../glx/.libs/libglx.a ../../../record/.libs/librecord.a /opt/local/lib/libpixman-1.dylib -lpthread /opt/local/lib/libXfont.dylib /opt/local/lib/libfreetype.dylib -lbz2 /opt/local/lib/libfontenc.dylib -lz /opt/local/lib/libXau.dylib /opt/local/lib/libXdmcp.dylib -lm -framework ApplicationServices
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _DeleteFontClientID
../../../dix/.libs/dixfonts.o definition of _DeleteFontClientID in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _DeleteFontClientID
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _ErrorF
../../../os/.libs/libos.a(log.o) definition of _ErrorF in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _ErrorF
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _FatalError
../../../os/.libs/libos.a(log.o) definition of _FatalError in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _FatalError
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _GetClientResolutions
../../../dix/.libs/dixfonts.o definition of _GetClientResolutions in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _GetClientResolutions
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _GetDefaultPointSize
../../../dix/.libs/dixfonts.o definition of _GetDefaultPointSize in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _GetDefaultPointSize
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _GetNewFontClientID
../../../dix/.libs/dixfonts.o definition of _GetNewFontClientID in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _GetNewFontClientID
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _GetTimeInMillis
../../../os/.libs/libos.a(utils.o) definition of _GetTimeInMillis in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _GetTimeInMillis
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _RegisterFPEFunctions
../../../dix/.libs/dixfonts.o definition of _RegisterFPEFunctions in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _RegisterFPEFunctions
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _StoreFontClientFont
../../../dix/.libs/dixfonts.o definition of _StoreFontClientFont in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _StoreFontClientFont
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _client_auth_generation
../../../dix/.libs/dixfonts.o definition of _client_auth_generation in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _client_auth_generation
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _find_old_font
../../../dix/.libs/dixfonts.o definition of _find_old_font in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _find_old_font
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _init_fs_handlers
../../../dix/.libs/dixfonts.o definition of _init_fs_handlers in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _init_fs_handlers
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _remove_fs_handlers
../../../dix/.libs/dixfonts.o definition of _remove_fs_handlers in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _remove_fs_handlers
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _set_font_authorizations
../../../os/.libs/libos.a(utils.o) definition of _set_font_authorizations in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _set_font_authorizations
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: multiple definitions of symbol _ClientSignal
/opt/local/lib/libXfont.dylib(single module) definition of _ClientSignal
../../../dix/.libs/libdix.a(dixutils.o) definition of _ClientSignal in section (__TEXT,__text)
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: multiple definitions of symbol _serverClient
/opt/local/lib/libXfont.dylib(single module) definition of _serverClient
../../../dix/.libs/libdix.a(globals.o) definition of _serverClient in section (__DATA,__common)
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: multiple definitions of symbol _serverGeneration
/opt/local/lib/libXfont.dylib(single module) definition of _serverGeneration
../../../dix/.libs/libdix.a(globals.o) definition of _serverGeneration in section (__DATA,__data)
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: multiple definitions of symbol _MakeAtom
/opt/local/lib/libXfont.dylib(single module) definition of _MakeAtom
../../../dix/.libs/libdix.a(atom.o) definition of _MakeAtom in section (__TEXT,__text)
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: multiple definitions of symbol _NameForAtom
/opt/local/lib/libXfont.dylib(single module) definition of _NameForAtom
../../../dix/.libs/libdix.a(atom.o) definition of _NameForAtom in section (__TEXT,__text)
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: multiple definitions of symbol _ValidAtom
/opt/local/lib/libXfont.dylib(single module) definition of _ValidAtom
../../../dix/.libs/libdix.a(atom.o) definition of _ValidAtom in section (__TEXT,__text)
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: multiple definitions of symbol _XkbFreeGeomOverlayKeys
/opt/local/lib/libX11.dylib(single module) definition of _XkbFreeGeomOverlayKeys
../../../xkb/.libs/libxkb.a(XKBGAlloc.o) definition of _XkbFreeGeomOverlayKeys in section (__TEXT,__text)
collect2: ld returned 1 exit status
make[4]: *** [X11.bin] Error 1
make[4]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_x11_xorg-server-devel/xorg-server-devel/work/xorg-server-devel-1.13.99.0/hw/xquartz/mach-startup'

comment:9 Changed 7 years ago by ryandesign (Ryan Schmidt)

Duplicate #37518 has a log of xorg-server-devel @1.13.99.

comment:10 Changed 7 years ago by ballapete (Peter Dyballa)

After the installation of bootstrap_cmds the build now fails with a different error:

make[3]: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_x11_xorg-server-devel/xorg-server-devel/work/xorg-server-devel-1.13.99.901/hw/xquartz/mach-startup'
mig -sheader mach_startupServer.h ./mach_startup.defs
/opt/local/bin/mig: line 162: /opt/local/bin/cc: No such file or directory
mig: fatal: "<no name yet>", line -1: no SubSystem declaration
make[3]: *** [mach_startupServer.c] Error 1
make[3]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_x11_xorg-server-devel/xorg-server-devel/work/xorg-server-devel-1.13.99.901/hw/xquartz/mach-startup'

/opt/local/bin/cc indeed does not exist… Creating it as a sym-link

ln -s /usr/bin/gcc-4.0 /opt/local/bin/cc

leads to a new failure:

make[3]: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_x11_xorg-server-devel/xorg-server-devel/work/xorg-server-devel-1.13.99.901/hw/xquartz/mach-startup'
mig -sheader mach_startupServer.h ./mach_startup.defs
cc: installation problem, cannot exec '/opt/local/bin/powerpc-apple-darwin8-gcc-4.0.1': No such file or directory
mig: fatal: "<no name yet>", line -1: no SubSystem declaration
make[3]: *** [mach_startupServer.c] Error 1
make[3]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_x11_xorg-server-devel/xorg-server-devel/work/xorg-server-devel-1.13.99.901/hw/xquartz/mach-startup'

Changed 7 years ago by ballapete (Peter Dyballa)

Attachment: main.4.log added

main.log from xorg-server-devel 1.13.99.901_1

comment:11 in reply to:  10 ; Changed 7 years ago by larryv (Lawrence Velázquez)

Replying to Peter_Dyballa@…:

/opt/local/bin/cc indeed does not exist… Creating it as a sym-link

ln -s /usr/bin/gcc-4.0 /opt/local/bin/cc

Please undo this. Nothing should be trying to use /opt/local/bin/cc; that is a bug. Do not manually create symlinks within the MacPorts prefix.

comment:12 in reply to:  11 Changed 7 years ago by ballapete (Peter Dyballa)

Replying to larryv@…:

Replying to Peter_Dyballa@…:

Please undo this. Nothing should be trying to use /opt/local/bin/cc; that is a bug. Do not manually create symlinks within the MacPorts prefix.

Well, it was a desperate try…

Not knowing what mig is and how complicated it operates I tried to give it what it wants. The next error makes it obvious that it is not "localised" to be used with MacPorts or it needs to be adapted to use GCC 4.2.

comment:13 Changed 7 years ago by jeremyhu (Jeremy Huddleston Sequoia)

The bootstrap_cmds bug is fixed in r103213

comment:14 Changed 7 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

comment:15 in reply to:  13 Changed 7 years ago by ballapete (Peter Dyballa)

Replying to jeremyhu@…:

The bootstrap_cmds bug is fixed in r103213

Yes, that's fixed. The original bug with the "multiple definitions" is back!

comment:16 Changed 7 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Summary: xorg-server-1.13.0 fails to build on Tiger PPC because of multiple definitions of symbol _XkbFreeGeomOverlayKeys?Tiger PPC: xorg-server-1.13.0 fails to build on Tiger PPC because of multiple definitions of symbol _XkbFreeGeomOverlayKeys?

comment:17 Changed 7 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Keywords: tiger added

comment:18 Changed 7 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Resolution: wontfix
Status: newclosed

If you have a patch, I'll take it, but I won't be investigating Tiger or PPC issues further.

comment:19 in reply to:  18 Changed 7 years ago by ballapete (Peter Dyballa)

Replying to jeremyhu@…:

If you have a patch, I'll take it, but I won't be investigating Tiger or PPC issues further.

What should I look at, what should I attempt? Identify the files that provide the _XkbFreeGeomOverlayKeys function and then find #ifdef guards?

comment:20 Changed 7 years ago by ballapete (Peter Dyballa)

Yesterday I tried to determine which functions from which files libraries actually stop the X server from building. First I looked at this group of multiple definitions:

../../../dix/.libs/dixfonts.o definition of			_DeleteFontClientID in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of	_DeleteFontClientID
../../../dix/.libs/dixfonts.o definition of			_GetClientResolutions in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of	_GetClientResolutions
../../../dix/.libs/dixfonts.o definition of			_GetDefaultPointSize in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of	_GetDefaultPointSize
../../../dix/.libs/dixfonts.o definition of			_GetNewFontClientID in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of	_GetNewFontClientID
../../../dix/.libs/dixfonts.o definition of			_RegisterFPEFunctions in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of	_RegisterFPEFunctions
../../../dix/.libs/dixfonts.o definition of			_StoreFontClientFont in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of	_StoreFontClientFont
../../../dix/.libs/dixfonts.o definition of			_client_auth_generation in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of	_client_auth_generation
../../../dix/.libs/dixfonts.o definition of			_find_old_font in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of	_find_old_font
../../../dix/.libs/dixfonts.o definition of			_init_fs_handlers in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of	_init_fs_handlers
../../../dix/.libs/dixfonts.o definition of			_remove_fs_handlers in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of	_remove_fs_handlers

I located the functions in these files:

libXfont-1.4.6/src/stubs/findoldfnt.c			xorg-server-devel-1.14.99.0/dix/dixfonts.c
--------------------------------------------------------------------------------------------------
							FontPtr
							find_old_font(XID id)
							{
weak FontPtr						    pointer pFont;
find_old_font(FSID id)
{							    dixLookupResourceByType(&pFont, id, RT_NONE, serverClient, DixReadAccess);
    return (FontPtr)NULL;				    return (FontPtr) pFont;
}							}

libXfont-1.4.6/src/stubs/getnewfntcid.c			xorg-server-devel-1.14.99.0/dix/dixfonts.c
--------------------------------------------------------------------------------------------------
							_X_EXPORT
weak Font						Font
GetNewFontClientID(void)				GetNewFontClientID(void)
{							{
    return (Font)0;					    return FakeClientID(0);
}							}

libXfont-1.4.6/src/stubs/stfntcfnt.c			xorg-server-devel-1.14.99.0/dix/dixfonts.c
--------------------------------------------------------------------------------------------------
							_X_EXPORT
weak int						int
StoreFontClientFont(FontPtr pfont, Font id)		StoreFontClientFont(FontPtr pfont, Font id)
{							{
    return 0;						    return AddResource(id, RT_NONE, (pointer) pfont);
}							}

libXfont-1.4.6/src/stubs/delfntcid.c			xorg-server-devel-1.14.99.0/dix/dixfonts.c
--------------------------------------------------------------------------------------------------
							_X_EXPORT
							void
weak void						DeleteFontClientID(Font id)
DeleteFontClientID(Font id)				{
{							    FreeResource(id, RT_NONE);
}							}

libXfont-1.4.6/src/stubs/initfshdl.c			xorg-server-devel-1.14.99.0/dix/dixfonts.c
--------------------------------------------------------------------------------------------------
							_X_EXPORT
							int
							init_fs_handlers(FontPathElementPtr fpe, BlockHandlerProcPtr block_handler)
							{
							    /* if server has reset, make sure the b&w handlers are reinstalled */
							    if (last_server_gen < serverGeneration) {
							        last_server_gen = serverGeneration;
							        fs_handlers_installed = 0;
							    }
							    if (fs_handlers_installed == 0) {
							        if (!RegisterBlockAndWakeupHandlers(block_handler,
							                                            FontWakeup, (pointer) 0))
weak int						            return AllocError;
init_fs_handlers(FontPathElementPtr fpe,		        fs_handlers_installed++;
                 BlockHandlerProcPtr block_handler)	    }
{							    QueueFontWakeup(fpe);
  return Successful;					    return Successful;
}							}

libXfont-1.4.6/src/stubs/rmfshdl.c			xorg-server-devel-1.14.99.0/dix/dixfonts.c
--------------------------------------------------------------------------------------------------
							_X_EXPORT
							void
							remove_fs_handlers(FontPathElementPtr fpe, BlockHandlerProcPtr block_handler,
							                   Bool all)
							{
							    if (all) {
							        /* remove the handlers if no one else is using them */
							        if (--fs_handlers_installed == 0) {
weak void						            RemoveBlockAndWakeupHandlers(block_handler, FontWakeup,
remove_fs_handlers(FontPathElementPtr fpe,		                                         (pointer) 0);
                   BlockHandlerProcPtr blockHandler,	        }
                   Bool all)				    }
{							    RemoveFontWakeup(fpe);
}							}

libXfont-1.4.6/src/stubs/getdefptsize.c			xorg-server-devel-1.14.99.0/dix/dixfonts.c
--------------------------------------------------------------------------------------------------
							_X_EXPORT
weak int						int
GetDefaultPointSize(void)				GetDefaultPointSize(void)
{							{
    return 0;						    return 120;
}							}

libXfont-1.4.6/src/stubs/getcres.c			xorg-server-devel-1.14.99.0/dix/dixfonts.c
--------------------------------------------------------------------------------------------------
							_X_EXPORT
							FontResolutionPtr
							GetClientResolutions(int *num)
							{
							    static struct _FontResolution res;
							    ScreenPtr pScreen;

							    pScreen = screenInfo.screens[0];
							    res.x_resolution = (pScreen->width * 25.4) / pScreen->mmWidth;
							    /*
							     * XXX - we'll want this as long as bitmap instances are prevalent
							     so that we can match them from scalable fonts
							     */
							    if (res.x_resolution < 88)
							        res.x_resolution = 75;
							    else
							        res.x_resolution = 100;
							    res.y_resolution = (pScreen->height * 25.4) / pScreen->mmHeight;
							    if (res.y_resolution < 88)
							        res.y_resolution = 75;
							    else
weak FontResolutionPtr					        res.y_resolution = 100;
GetClientResolutions(int *num)				    res.point_size = 120;
{							    *num = 1;
  return (FontResolutionPtr) 0;				    return &res;
}							}

libXfont-1.4.6/src/stubs/regfpefunc.c			xorg-server-devel-1.14.99.0/dix/dixfonts.c
--------------------------------------------------------------------------------------------------
							/*
							 * returns the type index of the new fpe
							 *
							 * should be called (only once!) by each type of fpe when initialized
							 */

							_X_EXPORT
							int
							RegisterFPEFunctions(NameCheckFunc name_func,
							                     InitFpeFunc init_func,
							                     FreeFpeFunc free_func,
							                     ResetFpeFunc reset_func,
							                     OpenFontFunc open_func,
							                     CloseFontFunc close_func,
							                     ListFontsFunc list_func,
							                     StartLfwiFunc start_lfwi_func,
							                     NextLfwiFunc next_lfwi_func,
							                     WakeupFpeFunc wakeup_func,
							                     ClientDiedFunc client_died,
							                     LoadGlyphsFunc load_glyphs,
							                     StartLaFunc start_list_alias_func,
							                     NextLaFunc next_list_alias_func, SetPathFunc set_path_func)
							{
							    FPEFunctions *new;

							    /* grow the list */
							    new = (FPEFunctions *) realloc(fpe_functions,
							                                   (num_fpe_types + 1) * sizeof(FPEFunctions));
							    if (!new)
							        return -1;
							    fpe_functions = new;

weak int						    fpe_functions[num_fpe_types].name_check = name_func;
RegisterFPEFunctions(NameCheckFunc name_func,		    fpe_functions[num_fpe_types].open_font = open_func;
		     InitFpeFunc init_func,		    fpe_functions[num_fpe_types].close_font = close_func;
		     FreeFpeFunc free_func,		    fpe_functions[num_fpe_types].wakeup_fpe = wakeup_func;
		     ResetFpeFunc reset_func,		    fpe_functions[num_fpe_types].list_fonts = list_func;
		     OpenFontFunc open_func,		    fpe_functions[num_fpe_types].start_list_fonts_with_info = start_lfwi_func;
		     CloseFontFunc close_func,		    fpe_functions[num_fpe_types].list_next_font_with_info = next_lfwi_func;
		     ListFontsFunc list_func,		    fpe_functions[num_fpe_types].init_fpe = init_func;
		     StartLfwiFunc start_lfwi_func,	    fpe_functions[num_fpe_types].free_fpe = free_func;
		     NextLfwiFunc next_lfwi_func,	    fpe_functions[num_fpe_types].reset_fpe = reset_func;
		     WakeupFpeFunc wakeup_func,		    fpe_functions[num_fpe_types].client_died = client_died;
		     ClientDiedFunc client_died,	    fpe_functions[num_fpe_types].load_glyphs = load_glyphs;
		     LoadGlyphsFunc load_glyphs,	    fpe_functions[num_fpe_types].start_list_fonts_and_aliases =
		     StartLaFunc start_list_alias_func,	        start_list_alias_func;
		     NextLaFunc next_list_alias_func,	    fpe_functions[num_fpe_types].list_next_font_or_alias = next_list_alias_func;
		     SetPathFunc set_path_func)		    fpe_functions[num_fpe_types].set_path_hook = set_path_func;
{
    return 0;						    return num_fpe_types++;
}							}

Those I do not mention here are like StoreFontClientFont() or DeleteFontClientID() of libXfont, rather empty. I then used

#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1040
#endif

in xorg-server-devel-1.14.99.0/dix/dixfonts.c to guard the mentioned functions from being compiled. It worked! (It seems to be a feature of MacPorts that the work directory is not removed when 'port upgrade' is invoked again.) The ten mentioned errors were removed, but I don't think that this is the proper way. Many of the listed functions in xorg-server-devel-1.14.99.0/dix/dixfonts.c seem to be useful, in contrast to their implementations in libXfont.

comment:21 Changed 7 years ago by ballapete (Peter Dyballa)

Here are the other comparisons:

libXfont-1.4.6/src/stubs/csignal.c			xorg-server-devel-1.14.99.0/dix/dixutils.c
--------------------------------------------------------------------------------------------------
							Bool
							ClientSignal(ClientPtr client)
							{
							    SleepQueuePtr q;

							    for (q = sleepQueue; q; q = q->next)
weak Bool						        if (q->client == client) {
ClientSignal(ClientPtr client)				            return QueueWorkProc(q->function, q->client, q->closure);
{							        }
    return True;					    return FALSE;
}							}


libXfont-1.4.6/src/stubs/servclient.c			xorg-server-devel-1.14.99.0/dix/globals.c
--------------------------------------------------------------------------------------------------

weak void *serverClient = 0;				ClientPtr serverClient;

libXfont-1.4.6/src/util/miscutil.c				xorg-server-devel-1.14.99.0/dix/globals.c
----------------------------------------------------------------------------------------------------------

#ifndef NO_WEAK_SYMBOLS
/* make sure everything initializes themselves at least once */
weak long serverGeneration = 1;					unsigned long serverGeneration = 0;
#endif

libXfont-1.4.6/src/util/atom.c							xorg-server-devel-1.14.99.0/dix/atom.c
--------------------------------------------------------------------------------------------------------------------------
weak int									Bool
ValidAtom(Atom atom)								ValidAtom(Atom atom)
{										{
    return (atom != None) && (atom <= lastAtom);				    return (atom != None) && (atom <= lastAtom);
}										}
										
										const char *
										NameForAtom(Atom atom)
										{
										    NodePtr node;
weak char *									
NameForAtom(Atom atom)								    if (atom > lastAtom)
{										        return 0;
    if (atom != None && atom <= lastAtom)					    if ((node = nodeTable[atom]) == NULL)
	return reverseMap[atom]->name;						        return 0;
    return NULL;								    return node->string;
}										}

weak Atom
MakeAtom(const char *string, unsigned len, int makeit)
{
    AtomListPtr	a;								Atom
    int		hash;								MakeAtom(const char *string, unsigned len, Bool makeit)
    int		h = 0;								{
    int		r;								    NodePtr *np;
										    unsigned i;
    hash = Hash (string, len);							    int comp;
    if (hashTable)								    unsigned int fp = 0;
    {
    	h = hash & hashMask;							    np = &atomRoot;
	if (hashTable[h])							    for (i = 0; i < (len + 1) / 2; i++) {
	{									        fp = fp * 27 + string[i];
	    if (hashTable[h]->hash == hash && hashTable[h]->len == len &&	        fp = fp * 27 + string[len - 1 - i];
	    	NameEqual (hashTable[h]->name, string, len))			    }
	    {									    while (*np != NULL) {
	    	return hashTable[h]->atom;					        if (fp < (*np)->fingerPrint)
	    }									            np = &((*np)->left);
	    r = (hash % rehash) | 1;						        else if (fp > (*np)->fingerPrint)
	    for (;;)								            np = &((*np)->right);
	    {									        else {                  /* now start testing the strings */
		h += r;								            comp = strncmp(string, (*np)->string, (int) len);
		if (h >= hashSize)						            if ((comp < 0) || ((comp == 0) && (len < strlen((*np)->string))))
		    h -= hashSize;						                np = &((*np)->left);
		if (!hashTable[h])						            else if (comp > 0)
		    break;							                np = &((*np)->right);
		if (hashTable[h]->hash == hash && hashTable[h]->len == len &&	            else
		    NameEqual (hashTable[h]->name, string, len))		                return (*np)->a;
		{								        }
		    return hashTable[h]->atom;					    }
		}								    if (makeit) {
	    }									        NodePtr nd;
    	}
    }										        nd = malloc(sizeof(NodeRec));
    if (!makeit)								        if (!nd)
	return None;								            return BAD_RESOURCE;
    a = malloc (sizeof (AtomListRec) + len + 1);				        if (lastAtom < XA_LAST_PREDEFINED) {
    if (a == NULL) {								            nd->string = string;
	fprintf(stderr, "MakeAtom(): Error: Couldn't allocate AtomListRec"	        }
		" (%ld)\n", (unsigned long)sizeof (AtomListRec) + len + 1);	        else {
	return None;								            nd->string = strndup(string, len);
    }										            if (!nd->string) {
    a->name = (char *) (a + 1);							                free(nd);
    a->len = len;								                return BAD_RESOURCE;
    strncpy (a->name, string, len);						            }
    a->name[len] = '\0';							        }
    a->atom = ++lastAtom;							        if ((lastAtom + 1) >= tableLength) {
    a->hash = hash;								            NodePtr *table;
    if (hashUsed >= hashSize / 2)
    {										            table = realloc(nodeTable, tableLength * (2 * sizeof(NodePtr)));
	ResizeHashTable ();							            if (!table) {
	h = hash & hashMask;							                if (nd->string != string) {
	if (hashTable[h])							                    /* nd->string has been strdup'ed */
	{									                    free((char *) nd->string);
	    r = (hash % rehash) | 1;						                }
	    do {								                free(nd);
		h += r;								                return BAD_RESOURCE;
		if (h >= hashSize)						            }
		    h -= hashSize;						            tableLength <<= 1;
	    } while (hashTable[h]);						            nodeTable = table;
	}									        }
    }										        *np = nd;
    hashTable[h] = a;								        nd->left = nd->right = NULL;
    hashUsed++;									        nd->fingerPrint = fp;
    if (reverseMapSize <= a->atom) {						        nd->a = ++lastAtom;
	if (!ResizeReverseMap())						        nodeTable[lastAtom] = nd;
	    return None;							        return nd->a;
    }										    }
    reverseMap[a->atom] = a;							    else
    return a->atom;								        return None;
}										}

===================================================================================================
libXfont-1.4.6/src/stubs/errorf.c			xorg-server-devel-1.14.99.0/os/log.c
--------------------------------------------------------------------------------------------------
							void
							ErrorF(const char *f, ...)
							{
							    va_list args;

weak void						    va_start(args, f);
ErrorF(const char *f, ...)				    VErrorF(f, args);
{							    va_end(args);
}							}

libXfont-1.4.6/src/stubs/fatalerror.c			xorg-server-devel-1.14.99.0/os/log.c
--------------------------------------------------------------------------------------------------
							void
							FatalError(const char *f, ...)
							{
							    va_list args;
							    va_list args2;
							    static Bool beenhere = FALSE;

							    if (beenhere)
							        ErrorF("\nFatalError re-entered, aborting\n");
							    else
							        ErrorF("\nFatal server error:\n");

							    va_start(args, f);

							    /* Make a copy for OsVendorFatalError */
							    va_copy(args2, args);

							#ifdef __APPLE__
							    {
							        va_list apple_args;

							        va_copy(apple_args, args);
							        (void)vsnprintf(__crashreporter_info_buff__,
							                        sizeof(__crashreporter_info_buff__), f, apple_args);
							        va_end(apple_args);
							    }
							#endif
							    VErrorF(f, args);
							    va_end(args);
							    ErrorF("\n");
							    if (!beenhere)
							        OsVendorFatalError(f, args2);
							    va_end(args2);
							    if (!beenhere) {
							        beenhere = TRUE;
							        AbortServer();
weak void						    }
FatalError(const char *f, ...)				    else
{							        OsAbort();
}							 /*NOTREACHED*/}

libXfont-1.4.6/src/stubs/gettime.c			xorg-server-devel-1.14.99.0/os/utils.c
--------------------------------------------------------------------------------------------------
							CARD32
							GetTimeInMillis(void)
							{
							    struct timeval tv;

							#ifdef MONOTONIC_CLOCK
							    struct timespec tp;
							    static clockid_t clockid;

							    if (!clockid) {
							#ifdef CLOCK_MONOTONIC_COARSE
							        if (clock_getres(CLOCK_MONOTONIC_COARSE, &tp) == 0 &&
							            (tp.tv_nsec / 1000) <= 1000 &&
							            clock_gettime(CLOCK_MONOTONIC_COARSE, &tp) == 0)
							            clockid = CLOCK_MONOTONIC_COARSE;
							        else
							#endif
							        if (clock_gettime(CLOCK_MONOTONIC, &tp) == 0)
							            clockid = CLOCK_MONOTONIC;
							        else
							            clockid = ~0L;
							    }
							    if (clockid != ~0L && clock_gettime(clockid, &tp) == 0)
							        return (tp.tv_sec * 1000) + (tp.tv_nsec / 1000000L);
weak unsigned long					#endif
GetTimeInMillis (void)
{							    X_GETTIMEOFDAY(&tv);
    return 0;						    return (tv.tv_sec * 1000) + (tv.tv_usec / 1000);
}							}

libXfont-1.4.6/src/stubs/setfntauth.c						xorg-server-devel-1.14.99.0/os/utils.c
--------------------------------------------------------------------------------------------------------------------------
										/* Implement a simple-minded font authorization scheme.  The authorization
										   name is "hp-hostname-1", the contents are simply the host name. */
										int
										set_font_authorizations(char **authorizations, int *authlen, pointer client)
										{
										#define AUTHORIZATION_NAME "hp-hostname-1"
										#if defined(TCPCONN) || defined(STREAMSCONN)
										    static char *result = NULL;
										    static char *p = NULL;

										    if (p == NULL) {
										        char hname[1024], *hnameptr;
										        unsigned int len;

										#if defined(IPv6) && defined(AF_INET6)
										        struct addrinfo hints, *ai = NULL;
										#else
										        struct hostent *host;

										#ifdef XTHREADS_NEEDS_BYNAMEPARAMS
										        _Xgethostbynameparams hparams;
										#endif
										#endif

										        gethostname(hname, 1024);
										#if defined(IPv6) && defined(AF_INET6)
										        memset(&hints, 0, sizeof(hints));
										        hints.ai_flags = AI_CANONNAME;
										        if (getaddrinfo(hname, NULL, &hints, &ai) == 0) {
										            hnameptr = ai->ai_canonname;
										        }
										        else {
										            hnameptr = hname;
										        }
										#else
										        host = _XGethostbyname(hname, hparams);
										        if (host == NULL)
										            hnameptr = hname;
										        else
										            hnameptr = host->h_name;
										#endif

										        len = strlen(hnameptr) + 1;
										        result = malloc(len + sizeof(AUTHORIZATION_NAME) + 4);

										        p = result;
										        *p++ = sizeof(AUTHORIZATION_NAME) >> 8;
										        *p++ = sizeof(AUTHORIZATION_NAME) & 0xff;
										        *p++ = (len) >> 8;
										        *p++ = (len & 0xff);

										        memmove(p, AUTHORIZATION_NAME, sizeof(AUTHORIZATION_NAME));
										        p += sizeof(AUTHORIZATION_NAME);
										        memmove(p, hnameptr, len);
										        p += len;
										#if defined(IPv6) && defined(AF_INET6)
										        if (ai) {
										            freeaddrinfo(ai);
										        }
										#endif
										    }
										    *authlen = p - result;
										    *authorizations = result;
weak int									    return 1;
set_font_authorizations(char **authorizations, int *authlen, ClientPtr client)	#else                           /* TCPCONN */
{										    return 0;
    return 0;									#endif                          /* TCPCONN */
}										}

Pretty clear is that:

libX11-1.6.1/src/xkb/XKBGAlloc.c			xorg-server-devel-1.14.99.0/xkb/XKBGAlloc.c
--------------------------------------------------------------------------------------------------
		void
		XkbFreeGeomOverlayKeys(XkbOverlayRowPtr row,int first,int count,Bool freeAll)
		{
		    _XkbFreeGeomLeafElems(freeAll,first,count,
						&row->num_keys,&row->sz_keys,
						(char **)&row->keys,
						sizeof(XkbOverlayKeyRec));
		    return;
		}

Both C source files use exactly the same code. So it should be possible to build xorg-server-1.13.x which has only this one complaint. If it uses the same code as xorg-server-devel 1.14.99.0. I'll to build that version with the patch as mentioned above.

comment:22 Changed 7 years ago by ballapete (Peter Dyballa)

The patch works, but libXfont is now different:

libtool: link: /usr/bin/gcc-4.0 -std=gnu99 -DHAVE_DIX_CONFIG_H -Wall -Wpointer-arith -Wmissing-declarations -Wformat=2 -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wbad-function-cast -Wold-style-definition -Wdeclaration-after-statement -Wunused -Wuninitialized -Wshadow -Wcast-qual -Wmissing-noreturn -Wmissing-format-attribute -Wredundant-decls -fno-strict-aliasing -fno-strict-aliasing -D_BSD_SOURCE -DHAS_FCHOWN -DHAS_STICKY_DIR_BIT -I/opt/local/include -I/opt/local/include/pixman-1 -I/opt/local/include -I/opt/local/include/freetype2 -I/opt/local/include -I../../../include -I../../../include -I../../../Xext -I../../../damageext -I../../../xfixes -I../../../Xi -I../../../mi -I../../../miext/sync -I../../../miext/shadow -I../../../miext/damage -I../../../render -I../../../randr -I../../../fb -I../../../dbe -pipe -Os -arch ppc -DROOTLESS_WORKAROUND -DROOTLESS_SAFEALPHA -DNO_ALLOCA -Objc -Wl,-u -Wl,_miDCInitialize -Wl,-framework -Wl,Carbon -Wl,-framework -Wl,Cocoa -Wl,-framework -Wl,CoreAudio -Wl,-framework -Wl,IOKit -Wl,-framework -Wl,OpenGL -Wl,-headerpad_max_install_names -arch ppc -o X11.bin bundle-main.o strndup.o mach_startupServer.o mach_startupUser.o ../../../dix/.libs/dixfonts.o  -lXplugin -L/opt/local/lib ../../../hw/xquartz/.libs/libXquartz.a ../../../hw/xquartz/xpr/.libs/libXquartzXpr.a ../../../miext/rootless/.libs/librootless.a ../../../hw/xquartz/pbproxy/.libs/libxpbproxy.a /opt/local/lib/libAppleWM.dylib /opt/local/lib/libXext.dylib /opt/local/lib/libxcb.dylib /opt/local/lib/libXfixes.dylib /opt/local/lib/libX11.dylib ../../../dix/.libs/libmain.a ../../../fb/.libs/libfb.a ../../../xfixes/.libs/libxfixes.a ../../../Xext/.libs/libXext.a ../../../dbe/.libs/libdbe.a ../../../randr/.libs/librandr.a ../../../render/.libs/librender.a ../../../damageext/.libs/libdamageext.a ../../../miext/sync/.libs/libsync.a ../../../miext/damage/.libs/libdamage.a ../../../miext/shadow/.libs/libshadow.a ../../../Xi/.libs/libXi.a ../../../xkb/.libs/libxkb.a ../../../xkb/.libs/libxkbstubs.a ../../../dix/.libs/libdix.a ../../../mi/.libs/libmi.a ../../../os/.libs/libos.a ../../../hw/xquartz/GL/.libs/libCGLCore.a ../../../glx/.libs/libglx.a ../../../record/.libs/librecord.a /opt/local/lib/libpixman-1.dylib /opt/local/lib/libXfont.dylib /opt/local/lib/libXau.dylib /opt/local/lib/libXdmcp.dylib -lm -framework ApplicationServices
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _DeleteFontClientID
../../../dix/.libs/dixfonts.o definition of _DeleteFontClientID in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _DeleteFontClientID
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _ErrorF
../../../os/.libs/libos.a(log.o) definition of _ErrorF in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _ErrorF
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _FatalError
../../../os/.libs/libos.a(log.o) definition of _FatalError in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _FatalError
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _GetClientResolutions
../../../dix/.libs/dixfonts.o definition of _GetClientResolutions in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _GetClientResolutions
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _GetDefaultPointSize
../../../dix/.libs/dixfonts.o definition of _GetDefaultPointSize in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _GetDefaultPointSize
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _GetNewFontClientID
../../../dix/.libs/dixfonts.o definition of _GetNewFontClientID in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _GetNewFontClientID
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _GetTimeInMillis
../../../os/.libs/libos.a(utils.o) definition of _GetTimeInMillis in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _GetTimeInMillis
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _RegisterFPEFunctions
../../../dix/.libs/dixfonts.o definition of _RegisterFPEFunctions in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _RegisterFPEFunctions
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _StoreFontClientFont
../../../dix/.libs/dixfonts.o definition of _StoreFontClientFont in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _StoreFontClientFont
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _client_auth_generation
../../../dix/.libs/dixfonts.o definition of _client_auth_generation in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _client_auth_generation
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _find_old_font
../../../dix/.libs/dixfonts.o definition of _find_old_font in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _find_old_font
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _init_fs_handlers
../../../dix/.libs/dixfonts.o definition of _init_fs_handlers in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _init_fs_handlers
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _remove_fs_handlers
../../../dix/.libs/dixfonts.o definition of _remove_fs_handlers in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _remove_fs_handlers
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning multiple definitions of symbol _set_font_authorizations
../../../os/.libs/libos.a(utils.o) definition of _set_font_authorizations in section (__TEXT,__text)
/opt/local/lib/libXfont.dylib(single module) definition of _set_font_authorizations
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: multiple definitions of symbol _ClientSignal
/opt/local/lib/libXfont.dylib(single module) definition of _ClientSignal
../../../dix/.libs/libdix.a(dixutils.o) definition of _ClientSignal in section (__TEXT,__text)
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: multiple definitions of symbol _serverClient
/opt/local/lib/libXfont.dylib(single module) definition of _serverClient
../../../dix/.libs/libdix.a(globals.o) definition of _serverClient in section (__DATA,__common)
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: multiple definitions of symbol _serverGeneration
/opt/local/lib/libXfont.dylib(single module) definition of _serverGeneration
../../../dix/.libs/libdix.a(globals.o) definition of _serverGeneration in section (__DATA,__data)
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: multiple definitions of symbol _MakeAtom
/opt/local/lib/libXfont.dylib(single module) definition of _MakeAtom
../../../dix/.libs/libdix.a(atom.o) definition of _MakeAtom in section (__TEXT,__text)
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: multiple definitions of symbol _NameForAtom
/opt/local/lib/libXfont.dylib(single module) definition of _NameForAtom
../../../dix/.libs/libdix.a(atom.o) definition of _NameForAtom in section (__TEXT,__text)
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: multiple definitions of symbol _ValidAtom
/opt/local/lib/libXfont.dylib(single module) definition of _ValidAtom
../../../dix/.libs/libdix.a(atom.o) definition of _ValidAtom in section (__TEXT,__text)
collect2: ld returned 1 exit status

comment:23 Changed 7 years ago by larryv (Lawrence Velázquez)

Cc: mikeformac@… added

Has duplicate #40481.

comment:24 Changed 6 years ago by ryandesign (Ryan Schmidt)

#41782 will fix this.

comment:25 Changed 6 years ago by ryandesign (Ryan Schmidt)

Cc: ryandesign@… added

Cc Me!

comment:26 Changed 6 years ago by jeremyhu (Jeremy Huddleston Sequoia)

If that's the case, then r115283 will take care of this now.

comment:27 in reply to:  26 Changed 6 years ago by ballapete (Peter Dyballa)

I did not try again to build xorg-server-1.13.0 but version 1.14.4 – and it was successful! And also xorg-server-devel -1.15.0 built now.

Note: See TracTickets for help on using tickets.