Skip to content
This repository has been archived by the owner on Apr 21, 2023. It is now read-only.

can't build? #1735

Open
drillsar opened this issue Jun 14, 2021 · 6 comments
Open

can't build? #1735

drillsar opened this issue Jun 14, 2021 · 6 comments

Comments

@drillsar
Copy link

Any recommendations?

Using Gentoo Linux 5.10.27; GCC 10.3.0

/usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/src/mod_pagespeed/psol/lib/Release/linux/x64/pagespeed_automatic.a(107.signals.o.o): in function pagespeed_ol_apr_signal_description_get': signals.c:(.text.apr_signal_description_get+0xe): undefined reference to sys_siglist'
collect2: error: ld returned 1 exit status
make[1]: *** [objs/Makefile:276: objs/nginx] Error 1
make[1]: Leaving directory '/var/tmp/portage/www-servers/nginx-1.21.0/work/nginx-1.21.0'
make: *** [Makefile:10: build] Error 2

@bayseek
Copy link

bayseek commented Jun 19, 2021

As already outlined in bug #1717 ,
it's impossible to build on any recent OS if GLIBC >= 2.32
OS and GCC versions don't really matter.

As outlined among the major features of GLIBC 2.32:

  • The deprecated arrays sys_siglist, _sys_siglist, and sys_sigabbrev
    are no longer available to newly linked binaries, and their declarations
    have been removed from <string.h>. They are exported solely as
    compatibility symbols to support old binaries. All programs should use
    strsignal instead.

As already outlined in bug #1717 ,
the building phase works just fine even on GCC >= 10 if GLIBC < 2.32 (that's the case of Fedora 32 as outlined by the former bug reporter; only Fedora 33 switched to GLIBC >= 2.32)

PSOL needs to be fixed in order to be compliant with GLIBC >= 2.32; until then, it's going to be impossible to build pagespeed on any OS shipping a GLIBC released in the last 11 months.

@acachy
Copy link

acachy commented Sep 14, 2021

I succeeded managing it in an ugly way

Part of my deploy script:

git submodule update --init --recursive --jobs=16 --force
...
sed -i -r 's/sys_siglist\[signum\]/strsignal(signum)/g' third_party/apr/src/threadproc/unix/signals.c
python build/gyp_chromium --depth=. 

The problem for good solution is that I just can't build PSOL for ngx with mod_pagespeed later than commit #409bd76 (after this one the bazel-build was implemented)
apache/incubator-pagespeed-mod#2069

@eilandert
Copy link

Thanks @acachy. I put sed in my deployment script and I managed to compile the latest-stable branch on Ubuntu Hirsute (21.04)

@luispabon
Copy link

Cannot build on latest debian stable (11 bulseye) and unless this is fixed it won't build on the next Ubuntu LTS either

@eilandert
Copy link

eilandert commented Sep 26, 2021

Cannot build on latest debian stable (11 bulseye) and unless this is fixed it won't build on the next Ubuntu LTS either

This

sed -i -r 's/sys_siglist[signum]/strsignal(signum)/g' third_party/apr/src/threadproc/unix/signals.c

does the trick on at least ubuntu 21.04 (rolling) and 21.10 (devel)

@medamin25
Copy link

#1717 (comment)
also in NixOS stable.

nix error: building nix env: exit status 100
Output has been trimmed to the last 20 lines
/nix/store/rq6bh3qfrqnyqwik0w3q6w180zg3w2pa-binutils-2.38/bin/ld: warning: libssl.so.1.1, needed by /nix/store/2ksd6iaqmqk3q53jd2j01z7k1f3i8kl7-srt-1.4.4/lib64/libsrt.so.1.4, may conflict with libssl.so.3
/nix/store/rq6bh3qfrqnyqwik0w3q6w180zg3w2pa-binutils-2.38/bin/ld: warning: libcrypto.so.1.1, needed by /nix/store/2ksd6iaqmqk3q53jd2j01z7k1f3i8kl7-srt-1.4.4/lib64/libsrt.so.1.4, may conflict with libcrypto.so.3
/nix/store/rq6bh3qfrqnyqwik0w3q6w180zg3w2pa-binutils-2.38/bin/ld: warning: libcrypto.so.1.1, needed by /nix/store/2ksd6iaqmqk3q53jd2j01z7k1f3i8kl7-srt-1.4.4/lib64/libsrt.so.1.4, may conflict with libcrypto.so.3
/nix/store/rq6bh3qfrqnyqwik0w3q6w180zg3w2pa-binutils-2.38/bin/ld: /nix/store/dgg4ycikp5wmln9jvg4dx6hp245am2mw-ngx_pagespeed/psol/lib/Release/linux/x64/pagespeed_automatic.a(107.signals.o.o): in function `pagespeed_ol_apr_signal_description_get':
signals.c:(.text.apr_signal_description_get+0xe): undefined reference to `sys_siglist'
/nix/store/rq6bh3qfrqnyqwik0w3q6w180zg3w2pa-binutils-2.38/bin/ld: /nix/store/dgg4ycikp5wmln9jvg4dx6hp245am2mw-ngx_pagespeed/psol/lib/Release/linux/x64/pagespeed_automatic.a(107.proc_mutex.o.o): in function `proc_mutex_pthread_tryacquire':
proc_mutex.c:(.text.proc_mutex_pthread_tryacquire+0x3c): undefined reference to `pthread_mutex_consistent_np'
/nix/store/rq6bh3qfrqnyqwik0w3q6w180zg3w2pa-binutils-2.38/bin/ld: /nix/store/dgg4ycikp5wmln9jvg4dx6hp245am2mw-ngx_pagespeed/psol/lib/Release/linux/x64/pagespeed_automatic.a(107.proc_mutex.o.o): in function `proc_mutex_pthread_acquire':
proc_mutex.c:(.text.proc_mutex_pthread_acquire+0x2c): undefined reference to `pthread_mutex_consistent_np'
/nix/store/rq6bh3qfrqnyqwik0w3q6w180zg3w2pa-binutils-2.38/bin/ld: /nix/store/dgg4ycikp5wmln9jvg4dx6hp245am2mw-ngx_pagespeed/psol/lib/Release/linux/x64/pagespeed_automatic.a(107.proc_mutex.o.o): in function `proc_mutex_pthread_create':
proc_mutex.c:(.text.proc_mutex_pthread_create+0xac): undefined reference to `pthread_mutexattr_setrobust_np'
/nix/store/rq6bh3qfrqnyqwik0w3q6w180zg3w2pa-binutils-2.38/bin/ld: /nix/store/dgg4ycikp5wmln9jvg4dx6hp245am2mw-ngx_pagespeed/psol/lib/Release/linux/x64/pagespeed_automatic.a(107.thread.o.o): in function `pagespeed_ol_apr_thread_yield':
thread.c:(.text.apr_thread_yield+0x1): undefined reference to `pthread_yield'
collect2: error: ld returned 1 exit status
make[1]: *** [objs/Makefile:468: objs/nginx] Error 1
make[1]: Leaving directory '/tmp/nix-build-nginx-1.22.0.drv-0/nginx-1.22.0'
make: *** [Makefile:10: build] Error 2
builder for '/nix/store/y0zhgn8q7bslw1mjqrlaw0zcq6yrj5jh-nginx-1.22.0.drv' failed with exit code 2
error: build of '/nix/store/y0zhgn8q7bslw1mjqrlaw0zcq6yrj5jh-nginx-1.22.0.drv' failed

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants