On Nov 5, 2021, at 3:34 PM, Antoine Jacoutot <[email protected]> wrote:
> 
> On Fri, Nov 05, 2021 at 03:19:12PM -0400, Kurt Mosiejczuk wrote:
>> On Fri, Nov 05, 2021 at 07:59:35PM +0100, Antoine Jacoutot wrote:
>>> On Fri, Nov 05, 2021 at 01:43:50PM -0400, Kurt Mosiejczuk wrote:
>>>> The switch to building with meson for the update to 1.17.4 did not get
>>>> along with sparc64 at all. Which knocks out a large portion of the tree.
>> 
>>>> Switching back to using autotools (and updating the PLIST) fixes the build
>>>> on sparc64 (and doesn't break it on amd64).
>> 
>>>> ok?
>> 
>>> What's the failure?
>> 
>> http://build-failures.rhaalovely.net/sparc64/2021-11-02/graphics/cairo.log
>> 
>> In file included from ../cairo-1.17.4/src/cairo-xlib-private.h:40,
>>                 from ../cairo-1.17.4/src/cairo-xlib-display.c:40:
>> ../cairo-1.17.4/src/cairo-xlib-xrender-private.h:106: error: redefinition of 
>> 'struct _XLinearGradient'
>> ../cairo-1.17.4/src/cairo-xlib-xrender-private.h:115: error: redefinition of 
>> 'struct _XCircle'
>> ../cairo-1.17.4/src/cairo-xlib-xrender-private.h:120: error: redefinition of 
>> 'struct _XRadialGradient'
>> ../cairo-1.17.4/src/cairo-xlib-xrender-private.h:129: error: redefinition of 
>> 'struct _XConicalGradient'
>> 
>> --Kurt
> 
> Can you find out why libExt failed?
> 
> Checking if "shmctl IPC_RMID allowes subsequent attaches" with dependencies 
> x11, xext runs: DID NOT COMPILE
> 
> Also please try with llvm.

I took a look at this a bit. Here’s what I found. The meson configure stage is
failing many checks that lead to an improper configuration and then results
in the the build failure above.

It looks to me like the root cause is a binutils-2.17 ld bug. Meson builds its
test programs with full paths to certain libraries and ld fails to link.

For example, here is the alarm test program:

        #define alarm meson_disable_define_of_alarm

        #include <limits.h>
        #undef alarm

        #ifdef __cplusplus
        extern "C"
        #endif
        char alarm (void);

        #if defined __stub_alarm || defined __stub___alarm
        fail fail fail this function is not going to work
        #endif

        int main(void) {
          return alarm ();
        } 

Its compiled and linked with the following command:

cc -I/usr/local/include -I/usr/X11R6/include/pixman-1 -I/usr/X11R6/include 
-I/usr/X11R6/include/freetype2 -I/usr/local/include/libpng16 
-I/usr/local/include/lzo testfile.c -o output.exe -O2 -pipe -g 
-D_FILE_OFFSET_BITS=64 -O0 -Wl,--start-group -lm /usr/local/lib/liblzo2.so.1.0 
-lz /usr/local/lib/libpng.so.18.0 /usr/lib/libz.so.6.0 
/usr/X11R6/lib/libfontconfig.so.13.0 /usr/X11R6/lib/libfreetype.so.30.0 
/usr/X11R6/lib/libX11.so.17.1 /usr/X11R6/lib/libXext.so.13.0 
/usr/X11R6/lib/libXrender.so.6.0 /usr/X11R6/lib/libxcb.so.4.1 
/usr/X11R6/lib/libxcb-render.so.1.1 /usr/X11R6/lib/libxcb-shm.so.1.1 
/usr/X11R6/lib/libpixman-1.so.40.0 -Wl,--end-group

And results in these linking errors:

/usr/X11R6/lib/libfontconfig.so.13.0: warning: sprintf() is often misused, 
please use snprintf()
/usr/X11R6/lib/libfontconfig.so.13.0: warning: strcpy() is almost always 
misused, please use strlcpy()
/usr/X11R6/lib/libfontconfig.so.13.0: warning: strcat() is almost always 
misused, please use strlcat()
/usr/bin/ld: warning: libX11.so.17.1, needed by /usr/X11R6/lib/libXext.so.13.0, 
not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libXau.so.10.0, needed by /usr/X11R6/lib/libxcb.so.4.1, 
not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libXdmcp.so.11.0, needed by /usr/X11R6/lib/libxcb.so.4.1, 
not found (try using -rpath or -rpath-link)
/usr/X11R6/lib/libxcb.so.4.1: undefined reference to `XdmcpWrap'
/usr/X11R6/lib/libxcb.so.4.1: undefined reference to `XauGetBestAuthByAddr'
/usr/X11R6/lib/libxcb.so.4.1: undefined reference to `XauDisposeAuth’

Note the warning lines about not finding libs that are clearly in the list of
libs to link but using full paths instead of -llibX11 for example. 
All of the failing configure tests are failing in the same way.

-Kurt

Reply via email to