[MacPorts] #45712: xorg-libXt-1.1.4_0 links shared libs with -flat_namespace on Yosemite

MacPorts noreply at macports.org
Sat Nov 1 20:19:17 PDT 2014


#45712: xorg-libXt-1.1.4_0 links shared libs with -flat_namespace on Yosemite
-------------------------+------------------------
  Reporter:  jhowarth@…  |      Owner:  jeremyhu@…
      Type:  defect      |     Status:  new
  Priority:  Normal      |  Milestone:
 Component:  ports       |    Version:  2.3.2
Resolution:              |   Keywords:
      Port:  xorg-libXt  |
-------------------------+------------------------

Comment (by howarth.at.macports@…):

 Replying to [comment:17 jeremyhu@…]:
 > What about just renaming the symbol in lesstif and openmotif and
 providing a macro to let clients find the new name?

 Unfortunately, I think they are tangled up together, If you create a patch
 that renames all of the instances of VendorShellClassRec and
 VendorShellRec to OMVendorShellClassRec and OMVendorShellRec, the build of
 motif fails at...

 {{{
 /bin/sh ../../libtool  --tag=CC   --mode=compile /usr/bin/clang
 -DHAVE_CONFIG_H -I. -I../../include -I.. -I./..
 -DXMBINDDIR_FALLBACK=\"/opt/local/lib/X11/bindings\"
 -DINCDIR=\"/opt/local/include/X11\" -DLIBDIR=\"/opt/local/lib/X11\"
 -I/opt/local/include  -I/opt/local/include -I/opt/local/include  -pipe -Os
 -arch x86_64 -Wall -g -fno-strict-aliasing -Wno-unused -Wno-comment
 -I/opt/local/include -I/opt/local/include/freetype2 -I/opt/local/include
 -I/opt/local/include/libpng16 -I/opt/local/include
 -I/opt/local/include/freetype2 -I/opt/local/include
 -I/opt/local/include/libpng16 -I/opt/local/include    -MT DragC.lo -MD -MP
 -MF .deps/DragC.Tpo -c -o DragC.lo DragC.c
 libtool: compile:  /usr/bin/clang -DHAVE_CONFIG_H -I. -I../../include -I..
 -I./.. -DXMBINDDIR_FALLBACK=\"/opt/local/lib/X11/bindings\"
 -DINCDIR=\"/opt/local/include/X11\" -DLIBDIR=\"/opt/local/lib/X11\"
 -I/opt/local/include -I/opt/local/include -I/opt/local/include -pipe -Os
 -arch x86_64 -Wall -g -fno-strict-aliasing -Wno-unused -Wno-comment
 -I/opt/local/include -I/opt/local/include/freetype2 -I/opt/local/include
 -I/opt/local/include/libpng16 -I/opt/local/include
 -I/opt/local/include/freetype2 -I/opt/local/include
 -I/opt/local/include/libpng16 -I/opt/local/include -MT DragC.lo -MD -MP
 -MF .deps/DragC.Tpo -c DragC.c  -fno-common -DPIC -o .libs/DragC.o
 In file included from DragC.c:51:
 ../Xm/VendorSP.h:48:13: error: unknown type name 'OMVendorShellClassRec';
 did you mean 'VendorShellClassRec'?
 externalref OMVendorShellClassRec  OMvendorShellClassRec;
             ^~~~~~~~~~~~~~~~~~~~~
             VendorShellClassRec
 /opt/local/include/X11/VendorP.h:82:3: note: 'VendorShellClassRec'
 declared here
 } VendorShellClassRec;
   ^
 1 error generated.

 }}}

 because the typdef for these two are in coming from the X11 headers...


 {{{
 #ifndef  _XtVendorPrivate_h
 #define _XtVendorPrivate_h

 #include <X11/Vendor.h>

 /* New fields for the VendorShell widget class record */

 _XFUNCPROTOBEGIN

 typedef struct {
     XtPointer       extension;          /* pointer to extension record
 */
 } VendorShellClassPart;

 typedef struct _VendorShellClassRec {
         CoreClassPart      core_class;
         CompositeClassPart composite_class;
         ShellClassPart  shell_class;
         WMShellClassPart   wm_shell_class;
         VendorShellClassPart vendor_shell_class;
 } VendorShellClassRec;

 externalref VendorShellClassRec vendorShellClassRec;

 /* New fields for the vendor shell widget. */

 typedef struct {
         int             vendor_specific;
 } VendorShellPart;

 typedef  struct {
         CorePart        core;
         CompositePart   composite;
         ShellPart       shell;
         WMShellPart     wm;
         VendorShellPart vendor;
 } VendorShellRec, *VendorShellWidget;

 _XFUNCPROTOEND

 #endif  /* _XtVendorPrivate_h */

 }}}

 If detangling this mess was easy to do, someone would have done it long
 ago. Note that in the lesstif link you sent me the user proposed renaming
 and the lesstif developer shot that idea down immediately.

-- 
Ticket URL: <https://trac.macports.org/ticket/45712#comment:18>
MacPorts <https://www.macports.org/>
Ports system for OS X


More information about the macports-tickets mailing list