Saturday, July 31, 2021

Re: sparc64 bulk build report

On Sat, Jul 31 2021, Jeremie Courreges-Anglas <jca@wxcvbn.org> wrote:
> On Sat, Jul 31 2021, Jonathan Gray <jsg@jsg.id.au> wrote:
>> On Sat, Jul 31, 2021 at 01:03:08AM +0000, Charlene Wendling wrote:
>>> On Fri, 30 Jul 2021 23:43:07 +0200
>>> Matthias Kilian <kili@outback.escape.de> wrote:
>>>
>>> > On Fri, Jul 30, 2021 at 11:36:47PM +0200, Matthias Kilian wrote:
>>> > > FWIW, I've poppler-21.07.0 in my tree, an update to 21.08.0 will
>>> > > probably available in two days. I can disable poppler-qt{5,6} for
>>> > > sparc64.
>>> > >
>>> > > > Note that the NOT_FOR_ARCHS-arm for qt5 looks suspect.
>>> > >
>>> > > Well, this entry is more than 5 years old. Should I remove it (there
>>> > > seems to be a qt5 package available for arm)?
>>> > >
>>> > > > This builds on qt6, really ?
>>> > >
>>> > > I don't see a qt6 package for arm on the mirrors.
>>> >
>>> > Maybe something like this?
>>>
>>> Not yet, in my humble opinion.
>>>
>>> In fact, mips64 has the same issue, and probably other ld.bfd archs.
>>> powerpc is not impacted but since bulks are so slow i have not hit
>>> that yet (the bulk snapshot is from July 16).
>>>
>>> One major change occurred , Mesa has been updated by July 22:
>>>
>>> http://marc.info/?l=openbsd-cvs&m=162694920304776
>>>
>>> Qt5 and Qt6 have started to be broken after the July 23 bulk on
>>> sparc64, July 27 for mips64.
>>>
>>> Taken from the mips64 bulk:
>>>
>>> > clang++ -Wl,-rpath,/usr/X11R6/lib -o egl main.o -L/usr/X11R6/lib -lEGL -L/usr/local/lib -L/pobj/qtbase-5.15.2/qtbase-everywhere-src-5.15.2/build-octeon/config.tests/egl
>>> > /usr/X11R6/lib/libX11.so.17.1: warning: sprintf() is often misused, please use snprintf()
>>> > /usr/X11R6/lib/libX11.so.17.1: warning: strcat() is almost always misused, please use strlcat()
>>> > /usr/X11R6/lib/libX11.so.17.1: warning: strcpy() is almost always misused, please use strlcpy()
>>> > /usr/X11R6/lib/libEGL.so.1.1: undefined reference to `_mesa_sha1_compute'
>>> > /usr/X11R6/lib/libEGL.so.1.1: undefined reference to `_mesa_sha1_format'
>>> > /usr/X11R6/lib/libEGL.so.1.1: undefined reference to `util_get_process_name'
>>> > /usr/X11R6/lib/libEGL.so.1.1: undefined reference to `ralloc_asprintf_append'
>>> > /usr/X11R6/lib/libEGL.so.1.1: undefined reference to `ralloc_free'
>>> > /usr/X11R6/lib/libEGL.so.1.1: undefined reference to `ralloc_strdup'
>>> > /usr/X11R6/lib/libEGL.so.1.1: undefined reference to `util_get_process_exec_path'
>>> > clang++: error: linker command failed with exit code 1 (use -v to see invocation)
>>>
>>> Since that test fails, all the EGL stuff is not built.
>>
>> Does a libEGL built with the following help?
>> Follows how the meson build is linked.
>>
>> Index: lib/mesa/mk/libEGL/Makefile
>> ===================================================================
>> RCS file: /cvs/xenocara/lib/mesa/mk/libEGL/Makefile,v
>> retrieving revision 1.3
>> diff -u -p -r1.3 Makefile
>> --- lib/mesa/mk/libEGL/Makefile 22 Jul 2021 11:10:08 -0000 1.3
>> +++ lib/mesa/mk/libEGL/Makefile 31 Jul 2021 02:04:01 -0000
>> @@ -38,7 +38,8 @@ CPPFLAGS+= -I${MESA_SRC}/src/egl/main \
>> -I${MESA_SRC}/src/gbm/backends/dri \
>> -D_EGL_NATIVE_PLATFORM=_EGL_PLATFORM_X11
>>
>> -LDADD+= ${.CURDIR}/../libmesa_util/${__objdir}/libmesa_util.a \
>> +LDADD+= -Wl,--as-needed -Wl,--allow-shlib-undefined -Wl,--start-group \
> ^^^^^^^^^^^^^^^^^
>> + ${.CURDIR}/../libmesa_util/${__objdir}/libmesa_util.a \
>> ${.CURDIR}/../libmesa_format/${__objdir}/libmesa_format.a \
>> -lz -lm \
>> -L${X11BASE}/lib -lX11-xcb -lX11 -lxcb -lxcb-xfixes
>> @@ -55,7 +56,8 @@ LDADD+= ${.CURDIR}/../libloader_dri3_hel
>> .endif
>>
>> LDADD+= -L${.CURDIR}/../libgbm/${__objdir} -lgbm \
>> - -L${.CURDIR}/../libglapi/${__objdir} -lglapi
>> + -L${.CURDIR}/../libglapi/${__objdir} -lglapi \
>> + -Wl,--end-group
> ^^^^^^^^^^^^^^^
> I think those additions make a lot of sense given the error. The other
> changes are probably useful too, deviating from upstream is asking for
> trouble.
>
> I'm testing this on sparc64 but the build is indeed slow.

Builds fine and the resulting lib doesn't expose all those "undefined
references".

ok jca@

> You can find
> attached the output of readelf -Wa libEGL.so, you can se that some
> symbols are undefined on sparc64/ld.bfd (whereas they're local/hidden on
> amd64/ld.lld).
>
> Also attached, the output of ldd libEGL.so, since you're
> introducing -Wl,--as-needed.

No comments:

Post a Comment