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 <a...@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

Reply via email to