It is still possible to build Perl on OS X 10.3, however there's one error during the build.
I applied the following patches to 5.38.2 source and ran ./Configure -des && make
on OS X 10.3.9
#21023
https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/pull/444/files
Perl-Toolchain-Gang/ExtUtils-MakeMaker#446
#21367
The build fails with `error: `bool' undeclared in ext/DynaLoader
which is odd since bool
is undefined in Dynaloader.xs
and it's not an issue on newer versions of OS X (10.4 & up), also the code which undefines bool has been in place since 2000.
cc -c -std=gnu99 -fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -Wall -W -Wno-long-long -Wwrite-strings -Os -DVERSION=\"1.54\" -DXS_VERSION=\"1.54\" "-I../.." -DLIBC="" DynaLoader.c
DynaLoader.xs: In function `dlclose':
DynaLoader.xs:61: warning: unused parameter `handle'
DynaLoader.xs: In function `TranslateError':
DynaLoader.xs:80: warning: initialization discards qualifiers from pointer target type
DynaLoader.xs:81: warning: initialization discards qualifiers from pointer target type
DynaLoader.xs:82: warning: initialization discards qualifiers from pointer target type
DynaLoader.xs:83: warning: initialization discards qualifiers from pointer target type
DynaLoader.xs:84: warning: initialization discards qualifiers from pointer target type
DynaLoader.xs:85: warning: initialization discards qualifiers from pointer target type
DynaLoader.xs:86: warning: initialization discards qualifiers from pointer target type
DynaLoader.xs: In function `dlsym':
DynaLoader.xs:128: warning: unused parameter `handle'
DynaLoader.c: In function `XS_DynaLoader_dl_load_file':
DynaLoader.c:317: warning: unused variable `targ'
DynaLoader.c: In function `XS_DynaLoader_dl_find_symbol':
DynaLoader.c:355: warning: unused variable `targ'
DynaLoader.xs: In function `XS_DynaLoader_CLONE':
DynaLoader.xs:231: error: `bool' undeclared (first use in this function)
DynaLoader.xs:231: error: (Each undeclared identifier is reported only once
DynaLoader.xs:231: error: for each function it appears in.)
DynaLoader.c: In function `boot_DynaLoader':
DynaLoader.c:486: error: `bool' undeclared (first use in this function)
/usr/include/architecture/byte_order.h: At top level:
../../scope_types.h:87: warning: `leave_scope_arg_counts' defined but not used
../../sv_inline.h:349: warning: `fake_rv' defined but not used
../../sv_inline.h:352: warning: `fake_hv_with_aux' defined but not used
DynaLoader.xs:62: warning: `dlclose' defined but not used
make[1]: *** [DynaLoader.o] Error 1
cc -c -std=gnu99 -fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -Wall -W -Wno-long-long -Wwrite-strings -Os -DVERSION=\"1.54\" -DXS_VERSION=\"1.54\" "-I../.." -DLIBC="" DynaLoader.c
DynaLoader.xs: In function `dlclose':
DynaLoader.xs:61: warning: unused parameter `handle'
DynaLoader.xs: In function `TranslateError':
DynaLoader.xs:80: warning: initialization discards qualifiers from pointer target type
DynaLoader.xs:81: warning: initialization discards qualifiers from pointer target type
DynaLoader.xs:82: warning: initialization discards qualifiers from pointer target type
DynaLoader.xs:83: warning: initialization discards qualifiers from pointer target type
DynaLoader.xs:84: warning: initialization discards qualifiers from pointer target type
DynaLoader.xs:85: warning: initialization discards qualifiers from pointer target type
DynaLoader.xs:86: warning: initialization discards qualifiers from pointer target type
DynaLoader.xs: In function `dlsym':
DynaLoader.xs:128: warning: unused parameter `handle'
DynaLoader.c: In function `XS_DynaLoader_dl_load_file':
DynaLoader.c:317: warning: unused variable `targ'
DynaLoader.c: In function `XS_DynaLoader_dl_find_symbol':
DynaLoader.c:355: warning: unused variable `targ'
DynaLoader.xs: In function `XS_DynaLoader_CLONE':
DynaLoader.xs:231: error: `bool' undeclared (first use in this function)
DynaLoader.xs:231: error: (Each undeclared identifier is reported only once
DynaLoader.xs:231: error: for each function it appears in.)
DynaLoader.c: In function `boot_DynaLoader':
DynaLoader.c:486: error: `bool' undeclared (first use in this function)
/usr/include/architecture/byte_order.h: At top level:
../../scope_types.h:87: warning: `leave_scope_arg_counts' defined but not used
../../sv_inline.h:349: warning: `fake_rv' defined but not used
../../sv_inline.h:352: warning: `fake_hv_with_aux' defined but not used
DynaLoader.xs:62: warning: `dlclose' defined but not used
make[1]: *** [DynaLoader.o] Error 1
Unsuccessful make(ext/DynaLoader): code=512 at make_ext.pl line 584.
make: *** [DynaLoader.o] Error 25
To sidestep the issue, I commented out undef bool
in Dynaloader.xs
which allowed me to complete the build.
I haven't completed a run of the test suite yet, but most of the UTF-8 tests failed, among others which I didn't note down. I plan to complete the run of the test suite to get a complete picture of what fails.
Summary of my perl5 (revision 5 version 38 subversion 2) configuration:
Platform:
osname=darwin
osvers=7.9.0
archname=darwin-thread-multi-2level
uname='darwin ibook.local 7.9.0 darwin kernel version 7.9.0: wed mar 30 20:11:17 pst 2005; root:xnuxnu-517.12.7.obj~1release_ppc power macintosh powerpc '
config_args='-des -Dprefix=/opt/tools'
hint=previous
useposix=true
d_sigaction=define
useithreads=define
usemultiplicity=define
use64bitint=undef
use64bitall=undef
uselongdouble=undef
usemymalloc=n
default_inc_excludes_dot=define
Compiler:
cc='cc'
ccflags ='-std=gnu99 -fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe'
optimize='-Os'
cppflags='-std=gnu99 -fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe'
ccversion=''
gccversion='3.3 20030304 (Apple Computer, Inc. build 1666)'
gccosandvers=''
intsize=4
longsize=4
ptrsize=4
doublesize=8
byteorder=4321
doublekind=4
d_longlong=define
longlongsize=8
d_longdbl=define
longdblsize=8
longdblkind=0
ivtype='long'
ivsize=4
nvtype='double'
nvsize=8
Off_t='off_t'
lseeksize=8
alignbytes=8
prototype=define
Linker and Libraries:
ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc'
ldflags =''
libpth=/usr/lib/gcc/darwin/3.3 /usr/lib
libs=-lpthread -ldbm -ldl -lm -lc
perllibs=-lpthread -ldl -lm -lc
libc=
so=dylib
useshrplib=true
libperl=libperl.dylib
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_dyld.xs
dlext=bundle
d_dlsymun=undef
ccdlflags=' '
cccdlflags=' '
lddlflags=' -bundle -undefined dynamic_lookup'
Characteristics of this binary (from libperl):
Compile-time options:
HAS_LONG_DOUBLE
HAS_STRTOLD
HAS_TIMES
MULTIPLICITY
PERLIO_LAYERS
PERL_COPY_ON_WRITE
PERL_DONT_CREATE_GVSV
PERL_HASH_FUNC_ZAPHOD32
PERL_HASH_USE_SBOX32
PERL_MALLOC_WRAP
PERL_OP_PARENT
PERL_PRESERVE_IVUV
PERL_USE_SAFE_PUTENV
USE_ITHREADS
USE_LARGE_FILES
USE_LOCALE
USE_LOCALE_COLLATE
USE_LOCALE_CTYPE
USE_LOCALE_NUMERIC
USE_LOCALE_TIME
USE_PERLIO
USE_PERL_ATOF
USE_REENTRANT_API
Built under darwin
Compiled at Dec 24 2023 18:07:21
@INC:
/opt/tools/lib/perl5/site_perl/5.38.2/darwin-thread-multi-2level
/opt/tools/lib/perl5/site_perl/5.38.2
/opt/tools/lib/perl5/5.38.2/darwin-thread-multi-2level
/opt/tools/lib/perl5/5.38.2
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4