On Nov 7, 2021, at 11:05 AM, Antoine Jacoutot <[email protected]> wrote:
> 
> On Sun, Nov 07, 2021 at 10:51:53AM -0500, Kurt Miller wrote:
>> 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.
> 
> Missing LDFLAGS -L/usr/X11R6/lib ?

Yes adding -L/usr/X11R6/lib allows them to link, but the question is
why is it necessary when the libs ld claims it can’t find are explicitly 
listed in the list of libs with full paths to find them? 

-Kurt

Reply via email to