develooper Front page | perl.perl5.porters | Postings from March 2019

[perl #133947] Blead fails to build under Haiku r1beta1

Thread Next
From:
Tom Wyant
Date:
March 21, 2019 20:12
Subject:
[perl #133947] Blead fails to build under Haiku r1beta1
Message ID:
rt-4.0.24-29552-1553199128-1936.133947-75-0@perl.org
# New Ticket Created by  Tom Wyant 
# Please include the string:  [perl #133947]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=133947 >


This is a bug report for perl from wyant@cpan.org,
generated with the help of perlbug 1.40 running under perl 5.26.1.


-----------------------------------------------------------------
[Please describe your issue here]


I was unable to build a default Perl under Haiku r1beta1. The appended patches got me through the build process, though the resultant Perl still has problems -- at least, it is unable to find the .so files build for XS modules.


The patches address two issues:


* The linker was unable to find symbols related to stack protection. I took the lazy way out here and edited Configure to disable stack protection.


* Errno_pm.PL was unable to find errno.h. I believe it has moved since the Haiku functionality was added. The patch looks for it in both the old and new locations.


Specifically, the patches are against commit 912b808cb4fcd596e07f77898c626f5567fbe994


Because of module-loading problems I was unable to run perlbug under the Perl I am reporting on. This report was generated by perlbug for the system perl. I do not know if the Haiku developers are sending you anything, but if they are it supersedes anything I tell you.


Herewith the patches:


diff --git a/Configure b/Configure
index 0c525c22f2..3d5a22b705 100755
--- a/Configure
+++ b/Configure
@@ -5500,6 +5500,7 @@ default|recommended)
# thing. (NWC)
case "$osname" in
amigaos) ;; # -fstack-protector builds but doesn't work
+ haiku) ;; # -fstack-protector fails to build under r1beta1
*) case "$gccversion" in
?*) set stack-protector-strong -fstack-protector-strong
eval $checkccflag
diff --git a/ext/Errno/Errno_pm.PL b/ext/Errno/Errno_pm.PL
index 84fd151d27..2d5c7de988 100644
--- a/ext/Errno/Errno_pm.PL
+++ b/ext/Errno/Errno_pm.PL
@@ -142,9 +142,19 @@ sub get_files {
) {
$file{$linux_errno_h} = 1;
} elsif ($^O eq 'haiku') {
- # hidden in a special place
- $file{'/boot/develop/headers/posix/errno.h'} = 1;
-
+ # hidden in a special place. This evidently changed between
+ # alpha and beta
+ for my $h ( qw{
+ /boot/develop/headers/posix/errno.h
+ /boot/system/develop/headers/posix/errno.h
+ } ) {
+ -f $h
+ or next;
+ $file{$h} = 1;
+ last;
+ }
+ keys %file
+ or $file{'/boot/develop/headers/posix/errno.h'} = 1;
} elsif ($^O eq 'vos') {
# avoid problem where cpp returns non-POSIX pathnames
$file{'/system/include_library/errno.h'} = 1;

[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
category=install
severity=low
---
Site configuration information for perl 5.26.1:

Configured by user at Wed Mar 14 20:49:44 GMT 2018.

Summary of my perl5 (revision 5 version 26 subversion 1) configuration:
Derived from:
Platform:
osname=haiku
osvers=1
archname=x86_64-haiku
uname='haiku shredder 1 hrev51655 dec 4 2017 12:44:17 x86_64 x86_64 haiku '
config_args='-Dprefix=/packages/perl-5.26.1-2/.self -Dprivlib=/packages/perl-5.26.1-2/.self/lib/perl5/5.26.1 -Dsiteprefix=/packages/perl-5.26.1-2/.self/non-packaged -Dsitelib=/packages/perl-5.26.1-2/.self/non-packaged/lib/perl5/site_perl/5.26 -Dvendorprefix=/packages/perl-5.26.1-2/.self -Dvendorlib=/packages/perl-5.26.1-2/.self/lib/perl5/vendor_perl/5.26 -Dcf_email=zooey@hirschkaefer.de -Uusenm -Duseshrplib -Uusemymalloc -Dlibpth=/boot/home/config/develop/lib /boot/system/develop/lib -Dusrinc=/boot/system/develop/headers/posix -Dlocinc=/boot/home/config/develop/headers /boot/system/develop/headers -Dlibc='/boot/system/lib/libroot.so' -Dlibs=-lnetwork -Dcc=gcc -Dld=gcc -Ud_link -Ddont_use_nlink -Ud_syserrlst -Dldlibpthname=LIBRARY_PATH -Dstartperl=#! perl -Dccdlflags=-Wl,-fno-stack-protector,-rpath=/packages/perl-5.26.1-2/.self/lib/perl5/5.26.1/x86_64-haiku/CORE -Dusesitecustomize
-de'
hint=recommended
useposix=true
d_sigaction=define
useithreads=undef
usemultiplicity=undef
use64bitint=define
use64bitall=define
uselongdouble=undef
usemymalloc=n
default_inc_excludes_dot=define
bincompat5005=undef
Compiler:
cc='gcc'
ccflags ='-fwrapv -fno-strict-aliasing -pipe -D_FORTIFY_SOURCE=2'
optimize='-O'
cppflags='-fwrapv -fno-strict-aliasing -pipe'
ccversion=''
gccversion='5.4.0'
gccosandvers=''
intsize=4
longsize=8
ptrsize=8
doublesize=8
byteorder=12345678
doublekind=3
d_longlong=define
longlongsize=8
d_longdbl=define
longdblsize=16
longdblkind=3
ivtype='long'
ivsize=8
nvtype='double'
nvsize=8
Off_t='off_t'
lseeksize=8
alignbytes=8
prototype=define
Linker and Libraries:
ld='gcc'
ldflags =''
libpth=/boot/home/config/develop/lib /boot/system/develop/lib /boot/system/develop/tools/bin/../lib/gcc/x86_64-unknown-haiku/5.4.0/include-fixed
libs=-lnetwork
perllibs=-lnetwork
libc=/boot/system/lib/libroot.so
so=so
useshrplib=true
libperl=libperl.so
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_dlopen.xs
dlext=so
d_dlsymun=undef
ccdlflags='-Wl,-fno-stack-protector,-rpath=/packages/perl-5.26.1-2/.self/lib/perl5/5.26.1/x86_64-haiku/CORE -Wl,-rpath,/packages/perl-5.26.1-2/.self/lib/perl5/5.26.1/x86_64-haiku/CORE'
cccdlflags='-fpic'
lddlflags='-shared'

Locally applied patches:
uncommitted-changes

---
@INC for perl 5.26.1:
/boot/home/perl5/lib/perl5/5.26.1/x86_64-haiku
/boot/home/perl5/lib/perl5/5.26.1
/boot/home/perl5/lib/perl5/x86_64-haiku
/boot/home/perl5/lib/perl5
/packages/perl-5.26.1-2/.self/non-packaged/lib/perl5/site_perl/5.26/x86_64-haiku
/packages/perl-5.26.1-2/.self/non-packaged/lib/perl5/site_perl/5.26
/packages/perl-5.26.1-2/.self/lib/perl5/vendor_perl/5.26/x86_64-haiku
/packages/perl-5.26.1-2/.self/lib/perl5/vendor_perl/5.26
/packages/perl-5.26.1-2/.self/lib/perl5/5.26.1/x86_64-haiku
/packages/perl-5.26.1-2/.self/lib/perl5/5.26.1

---
Environment for perl 5.26.1:
HOME=/boot/home
LANG (unset)
LANGUAGE (unset)
LC_COLLATE=en.UTF-8
LC_CTYPE=en.UTF-8
LC_MESSAGES=en.UTF-8
LC_MONETARY=en.UTF-8
LC_NUMERIC=en.UTF-8
LC_TIME=en.UTF-8
LC_TYPE=en_US.UTF-8
LD_LIBRARY_PATH (unset)
LIBRARY_PATH=%A/lib:/boot/home/config/non-packaged/lib:/boot/home/config/lib:/boot/system/non-packaged/lib:/boot/system/lib
LOGDIR (unset)
PATH=/boot/home/perl5/bin:/boot/home/bin:.:/boot/home/config/non-packaged/bin:/boot/home/config/bin:/boot/system/non-packaged/bin:/bin:/boot/system/apps:/boot/system/preferences
PERL5LIB=/boot/home/perl5/lib/perl5
PERL5OPT=
PERL5_CPANPLUS_IS_RUNNING=1178
PERL5_CPAN_IS_RUNNING=1178
PERL_BADLANG (unset)
PERL_LOCAL_LIB_ROOT=/boot/home/perl5
PERL_MB_OPT=--install_base "/boot/home/perl5"
PERL_MM_OPT=INSTALL_BASE=/boot/home/perl5
SHELL (unset)


Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About