[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.
- Re: groff 1.23.0.rc4 on GNU systems, (continued)
Re: groff 1.23.0.rc4 on Solaris 10, Bruno Haible, 2023/04/15
Re: groff 1.23.0.rc4 on mingw, Bruno Haible, 2023/04/15