Ok. And thanks for looking at it. 
Can you please add a small comment that it’s only needed for non llvm arches. 

Cheers!

—
Antoine

> On 7 Nov 2021, at 18:33, Kurt Miller <li...@intricatesoftware.com> wrote:
> 
> On Nov 7, 2021, at 12:14 PM, Kurt Miller <li...@intricatesoftware.com> wrote:
>> 
>>> On Nov 7, 2021, at 11:05 AM, Antoine Jacoutot <ajacou...@bsdfrog.org> wrote:
>>> 
>>> On Sun, Nov 07, 2021 at 10:51:53AM -0500, Kurt Miller wrote:
>>>> On Nov 5, 2021, at 3:34 PM, Antoine Jacoutot <ajacou...@bsdfrog.org> 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? 
> 
> Meanwhile this works to fix the build on sparc64:
> 
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/graphics/cairo/Makefile,v
> retrieving revision 1.72
> diff -u -p -u -r1.72 Makefile
> --- Makefile    25 Oct 2021 07:21:40 -0000    1.72
> +++ Makefile    7 Nov 2021 17:31:04 -0000
> @@ -3,6 +3,7 @@
> COMMENT=        vector graphics library
> 
> DISTNAME=        cairo-1.17.4
> +REVISION=        0
> 
> CATEGORIES=        graphics
> DPB_PROPERTIES=        parallel
> @@ -36,6 +37,7 @@ LIB_DEPENDS=        archivers/lzo2 \
> 
> CONFIGURE_ARGS=        -Dspectre=disabled \
>            -Dtests=disabled
> +CONFIGURE_ENV=        LDFLAGS="-L/usr/X11R6/lib"
> 
> # needed for firefox
> CONFIGURE_ARGS +=    -Dtee=enabled
> 
> 

Reply via email to