groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: groff 1.23.0.rc4 on AIX


From: Ralph Corderoy
Subject: Re: groff 1.23.0.rc4 on AIX
Date: Sun, 16 Apr 2023 11:58:13 +0100

Hi Branden,

> > > xlc -q64 ... -lSM -lICE -lXaw -lXmu -lXt -lX11  -lm libxutil.a 
> > > lib/libgnu.a 
> > > ld: 0711-317 ERROR: Undefined symbol: .XpmReadFileToPixmap
> > > ld: 0711-317 ERROR: Undefined symbol: .XShapeCombineMask
> > > ld: 0711-317 ERROR: Undefined symbol: .XShapeQueryExtension
...
> > > Hmm. In the 'configure' output I see two lines
> > > 
> > >   checking for Xaw library and header files... yes
> > >   checking for Xmu library and header files... yes
> > > 
> > > Should there also be a line
> > > 
> > >   checking for Xpm library and header files...
...
> > I'd expect that to resolve
> >
> > > ld: 0711-317 ERROR: Undefined symbol: .XpmReadFileToPixmap
> >
> > but not
> >
> > > ld: 0711-317 ERROR: Undefined symbol: .XShapeCombineMask
> > > ld: 0711-317 ERROR: Undefined symbol: .XShapeQueryExtension
> >
> > It has been nearly 20 years since I did X11 work, but the SHAPE X11
> > protocol extension is not directly related to Xpm.  I think.
...
> > I thought Xpm was (just?) an extension to the X11 core bitmap file
> > format to support color depths other than 1.

And transparent pixels IIRC.  But I agree it doesn't use Shape which is
for ‘shaping’ non-rectangular windows.

> > These missing external symbols suggest to me that libXext will be
> > required too, to get the client library interface to the SHAPE
> > extension.

Yes.

> I question whether there should in fact be any "checking for Xpm"
> configuration test in groff for the Xpm library or for the SHAPE
> extension client library interface (which is in Xext).
>
> The reason is that the groff code doesn't use these interfaces or
> symbols.  gxditview should link and run just fine on a libXpm-free
> system with no SHAPE extension support (client- _or_ server-side).
>
> It sounds like one of AIX's versions of the standard X11 libraries
> links to these (my money's on Xaw, a popular site for vendor
> extensions since its defaults are so minimalistic and ugly).

Check your local systems to hand.
Here, Linux, libXaw wants libXext and libXmu for Shape.

    $ ldd /bin/gxditview | g -o '/usr[^ ]+' | sort -u | _ -t readelf -s _ |& g 
'^readelf|Shape'
    readelf -s /usr/lib64/ld-linux-x86-64.so.2 
    readelf -s /usr/lib/libc.so.6 
    readelf -s /usr/lib/libdl.so.2 
    readelf -s /usr/lib/libICE.so.6 
    readelf -s /usr/lib/libm.so.6 
    readelf -s /usr/lib/libSM.so.6 
    readelf -s /usr/lib/libuuid.so.1 
    readelf -s /usr/lib/libX11.so.6 
       221: 00000000000a1b40    25 FUNC    GLOBAL DEFAULT    9 
XkbAllocGeomShapes
       428: 00000000000a15d0    41 FUNC    GLOBAL DEFAULT    9 XkbFreeGeomShapes
       522: 00000000000a2260   286 FUNC    GLOBAL DEFAULT    9 XkbAddGeomShape
       604: 000000000001fd90   286 FUNC    GLOBAL DEFAULT    9 
_XTryShapeBitmapCursor
       628: 0000000000098500   242 FUNC    GLOBAL DEFAULT    9 
XkbComputeShapeBounds
      1270: 0000000000098600   218 FUNC    GLOBAL DEFAULT    9 
XkbComputeShapeTop
    readelf -s /usr/lib/libXau.so.6 
    readelf -s /usr/lib/libXaw.so.7 
         2: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND 
XmuCvtStringToShapeStyle
        37: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND XShapeCombineMask
       233: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND 
XmuCvtShapeStyleToString
       245: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND 
XShapeQueryExtension
    readelf -s /usr/lib/libxcb.so.1 
    readelf -s /usr/lib/libXdmcp.so.6 
    readelf -s /usr/lib/libXext.so.6 
        75: 00000000000087c0   490 FUNC    GLOBAL DEFAULT    9 
XShapeQueryExtents
        76: 00000000000086e0   223 FUNC    GLOBAL DEFAULT    9 XShapeOffsetShape
       137: 0000000000008040    73 FUNC    GLOBAL DEFAULT    9 
XShapeQueryExtension
       140: 0000000000008090   282 FUNC    GLOBAL DEFAULT    9 
XShapeQueryVersion
       143: 00000000000085d0   271 FUNC    GLOBAL DEFAULT    9 
XShapeCombineShape
       155: 00000000000089b0   195 FUNC    GLOBAL DEFAULT    9 XShapeSelectInput
       170: 0000000000008b90   541 FUNC    GLOBAL DEFAULT    9 
XShapeGetRectangles
       173: 00000000000081b0   447 FUNC    GLOBAL DEFAULT    9 
XShapeCombineRegion
       175: 0000000000008370   351 FUNC    GLOBAL DEFAULT    9 
XShapeCombineRectangles
       183: 00000000000084d0   255 FUNC    GLOBAL DEFAULT    9 XShapeCombineMask
       187: 0000000000008a80   266 FUNC    GLOBAL DEFAULT    9 
XShapeInputSelected
    readelf -s /usr/lib/libXmu.so.6 
        19: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND XShapeCombineMask
       151: 0000000000011b90   264 FUNC    GLOBAL DEFAULT    9 
XmuCvtShapeStyleToString
       153: 00000000000119f0   404 FUNC    GLOBAL DEFAULT    9 
XmuCvtStringToShapeStyle
    readelf -s /usr/lib/libXpm.so.4 
    readelf -s /usr/lib/libXt.so.6 
    $

And libXaw uses XpmReadFileToPixmap() pulling in libXpm.

> I don't know anything about how linking on AIX works.

The main difference I remember is it loops around until symbols are
resolved so things like ‘-la -lb -la’ or GNU ld's
--start-group/--end-group aren't needed.

-- 
Cheers, Ralph.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]