Bug#756655: libembperl-perl: FTBFS on s390x: Embperl.so: undefined symbol: ap_rflush
Axel Beckert
abe at debian.org
Fri Jan 15 19:15:56 UTC 2016
Control: tag -1 + confirmed
Control: retitle -1 libembperl-perl: FTBFS on s390x: Embperl.so: undefined symbol: ap_rflush, ap_hook_post_config, ap_hook_open_logs, ap_rwrite
Hi,
Niko Tyni wrote:
> If apache2 is indeed missing ap_rflush on s390x, that might be worth
> a bug report there.
Indeed.
> It looks like it's a documented part of the API,
> see /usr/include/apache2/http_protocol.h in apache2-dev.
It's worse. If I comment out all ap_rflush occurrences (they seem only
used in debug mode and purely optional, I get more severe breakage:
Can't load '/home/abe/libembperl-perl/blib/arch/auto/Embperl/Embperl.so' for module Embperl: /home/abe/libembperl-perl/blib/arch/auto/Embperl/Embperl.so: undefined symbol: ap_hook_open_logs at /usr/lib/s390x-linux-gnu/perl/5.22/DynaLoader.pm line 187.
at test.pl line 1916.
Compilation failed in require at test.pl line 1916.
BEGIN failed--compilation aborted at test.pl line 1916.
Same for ap_hook_post_config and ap_rwrite. That's where I stopped
commenting out code.
> On amd64:
>
> % objdump -T /usr/sbin/apache2|grep ap_rflush
> 000000000029c4d0 g DO .data 0000000000000008 Base ap_hack_ap_rflush
> 000000000003f420 g DF .text 0000000000000064 Base ap_rflush
Well, on s390x:
→ objdump -T /usr/sbin/apache2 | egrep 'ap_rflush|ap_rwrite|ap_hook_open_logs|ap_hook_post_config'
00000000000b0918 g DO .data 0000000000000008 Base ap_hack_ap_hook_post_config
000000000005f288 g DF .text 00000000000000e8 Base ap_hook_post_config
00000000000b04b8 g DO .data 0000000000000008 Base ap_hack_ap_rwrite
00000000000447d8 g DF .text 000000000000005a Base ap_rwrite
00000000000b0900 g DO .data 0000000000000008 Base ap_hack_ap_hook_open_logs
00000000000b0498 g DO .data 0000000000000008 Base ap_hack_ap_rflush
000000000005f448 g DF .text 00000000000000e8 Base ap_hook_open_logs
0000000000044b00 g DF .text 0000000000000098 Base ap_rflush
All there. I'm confused. This also looks fine:
→ dgrep ap_rflush apache2-dev
/usr/include/apache2/http_protocol.h:AP_DECLARE(int) ap_rflush(request_rec *r);
Even if I check in which files it is present:
s390x:
→ fgrep ap_rflush -r /usr/lib/apache2
Binary file /usr/lib/apache2/modules/mod_heartmonitor.so matches
/usr/lib/apache2/modules/httpd.exp:ap_rflush
Binary file /usr/lib/apache2/modules/mod_lua.so matches
Binary file /usr/lib/apache2/modules/mod_proxy_balancer.so matches
amd64 (stretch):
# fgrep ap_rflush -r /usr/lib/apache2
Binary file /usr/lib/apache2/modules/mod_heartmonitor.so matches
/usr/lib/apache2/modules/httpd.exp:ap_rflush
Binary file /usr/lib/apache2/modules/libphp5.so matches
Binary file /usr/lib/apache2/modules/mod_proxy_balancer.so matches
Binary file /usr/lib/apache2/modules/mod_lua.so matches
For now, I'm out of ideas.
Regards, Axel
--
,''`. | Axel Beckert <abe at debian.org>, http://people.debian.org/~abe/
: :' : | Debian Developer, ftp.ch.debian.org Admin
`. `' | 4096R: 2517 B724 C5F6 CA99 5329 6E61 2FF9 CD59 6126 16B5
`- | 1024D: F067 EA27 26B9 C3FC 1486 202E C09E 1D89 9593 0EDE
More information about the pkg-perl-maintainers
mailing list