Browse Source

perl: Switch to split configuration files

This replaces the previously used collection of configuration files for every single
architecture in conjunction with hacky overrides, which became an increasing burden to maintain.

Fixes a number of outstanding bugs and oddities, with the most important one being the
previously wrong signal order(as shown by ext/POSIX/t/sigaction.t).

See files/perlconfig.pl's POD and files/README.config for details.

Signed-off-by: Marcel Denia <naoir@gmx.net>
lilik-openwrt-22.03
Marcel Denia 10 years ago
parent
commit
afad970139
35 changed files with 1090 additions and 21148 deletions
  1. +18
    -57
      lang/perl/Makefile
  2. +58
    -0
      lang/perl/files/README.config
  3. +121
    -0
      lang/perl/files/architecture.config
  4. +19
    -0
      lang/perl/files/arm.config
  5. +19
    -0
      lang/perl/files/armeb.config
  6. +101
    -308
      lang/perl/files/base.config
  7. +0
    -1227
      lang/perl/files/config.sh-arm-mt.in
  8. +0
    -1226
      lang/perl/files/config.sh-arm.in
  9. +0
    -1226
      lang/perl/files/config.sh-armeb-mt.in
  10. +0
    -1225
      lang/perl/files/config.sh-armeb.in
  11. +0
    -1229
      lang/perl/files/config.sh-avr32-mt.in
  12. +0
    -1228
      lang/perl/files/config.sh-avr32.in
  13. +0
    -1213
      lang/perl/files/config.sh-i486-mt.in
  14. +0
    -1227
      lang/perl/files/config.sh-mips-mt.in
  15. +0
    -1226
      lang/perl/files/config.sh-mips.in
  16. +0
    -1227
      lang/perl/files/config.sh-mips64-mt.in
  17. +0
    -1226
      lang/perl/files/config.sh-mips64.in
  18. +0
    -1213
      lang/perl/files/config.sh-mipsel-mt.in
  19. +0
    -1212
      lang/perl/files/config.sh-mipsel.in
  20. +0
    -1227
      lang/perl/files/config.sh-powerpc-mt.in
  21. +0
    -1226
      lang/perl/files/config.sh-powerpc.in
  22. +0
    -1213
      lang/perl/files/config.sh-x86_64-mt.in
  23. +0
    -1212
      lang/perl/files/config.sh-x86_64.in
  24. +28
    -0
      lang/perl/files/i486.config
  25. +45
    -0
      lang/perl/files/libc.config
  26. +19
    -0
      lang/perl/files/mips.config
  27. +19
    -0
      lang/perl/files/mips64.config
  28. +19
    -0
      lang/perl/files/mipsel.config
  29. +11
    -0
      lang/perl/files/misc.config
  30. +313
    -0
      lang/perl/files/perlconfig.pl
  31. +19
    -0
      lang/perl/files/powerpc.config
  32. +18
    -0
      lang/perl/files/signal.config
  33. +197
    -0
      lang/perl/files/threads.config
  34. +38
    -0
      lang/perl/files/version.config
  35. +28
    -0
      lang/perl/files/x86_64.config

+ 18
- 57
lang/perl/Makefile View File

@ -36,29 +36,11 @@ HOST_BUILD_PARALLEL:=1
# Variables used during configuration/build
HOST_PERL_PREFIX:=$(STAGING_DIR_HOST)/usr
ifneq ($(CONFIG_USE_GLIBC),)
EXTRA_LIBS:=bsd
EXTRA_LIBDIRS:=$(STAGING_DIR)/lib
endif
# Filter -g3, it will break Compress-Raw-Zlib
TARGET_CFLAGS_PERL:=$(patsubst -g3,-g,$(TARGET_CFLAGS))
TARGET_CPPFLAGS_PERL:=$(patsubst -g3,-g,$(TARGET_CPPFLAGS))
# Handle threading
ifdef CONFIG_PERL_THREADS
PERL_CONFIG_SUFFIX:=-mt
# uclibc doesn't provide crypt_r(). Enable crypt() usage for glibc builds only
ifdef CONFIG_USE_GLIBC
CRYPT_R_PROTO:=REENTRANT_PROTO_B_CCS
CRYPT:=define
else
CRYPT_R_PROTO:=0
CRYPT:=undef
endif
endif
# A list of disabled tests
# ExtUtils tests are disabled for now as we don't support building
# native extensions on the target machine at the moment
@ -110,45 +92,24 @@ endef
# Target perl
define Build/Configure
sed \
-e 's!%%CC%%!$(TARGET_CC)!g' \
-e 's!%%CFLAGS%%!$(TARGET_CFLAGS_PERL) $(TARGET_CPPFLAGS_PERL)!g' \
-e 's!%%CPP%%!$(TARGET_CROSS)gcc -E!g' \
-e 's!%%AR%%!$(TARGET_CROSS)ar!g' \
-e 's!%%LD%%!$(TARGET_CROSS)gcc!g' \
-e 's!%%LDFLAGS%%!-rdynamic $(TARGET_LDFLAGS)!g' \
-e 's!%%LIBDIRS%%!$(STAGING_DIR)/lib $(STAGING_DIR)/usr/lib!g' \
-e 's!%%INCDIRS%%!$(STAGING_DIR)/include $(STAGING_DIR)/usr/include!g' \
-e 's!%%EXTRA_PERLLIBS%%!$(EXTRA_LIBS:%=-l%)!g' \
-e 's!%%EXTRA_PERLLIBDIRS%%!$(EXTRA_LIBDIRS:%=-L%)!g' \
-e 's!%%IPV6%%!$(if $($(CONFIG_IPV6)),define,undef)!g' \
-e 's!%%HOSTMINIPERL%%!$(HOST_PERL_PREFIX)/bin/perl!g' \
-e 's!%%CRYPT_R_PROTO%%!$(CRYPT_R_PROTO)!g' \
-e 's!%%CRYPT%%!$(CRYPT)!g' \
-e 's!%%HOSTGENERATE%%!$(HOST_PERL_PREFIX)/bin/generate_uudmap!g' \
files/config.sh-$(patsubst i386,i486,$(ARCH))$(PERL_CONFIG_SUFFIX).in \
> $(PKG_BUILD_DIR)/config.sh
ifeq ($(CONFIG_USE_MUSL),y)
sed -i \
-e "s,\(d_stdio_ptr_lval=\)'define',\1'undef',g" \
-e "s,\(d_stdio_ptr_lval_sets_cnt=\)'define',\1'undef',g" \
-e "s,\(d_stdiobase=\)'define',\1'undef',g" \
-e "s,\(d_stdstdio=\)'define',\1'undef',g" \
-e "s,\(d_getnetbyname_r=\)'define',\1'undef',g" \
-e "s,\(getprotobyname_r=\)'define',\1'undef',g" \
-e "s,\(getpwent_r=\)'define',\1'undef',g" \
-e "s,\(getservent_r=\)'define',\1'undef',g" \
-e "s,\(gethostent_r=\)'define',\1'undef',g" \
-e "s,\(getnetent_r=\)'define',\1'undef',g" \
-e "s,\(getnetbyaddr_r=\)'define',\1'undef',g" \
-e "s,\(getprotoent_r=\)'define',\1'undef',g" \
-e "s,\(getprotobynumber_r=\)'define',\1'undef',g" \
-e "s,\(getgrent_r=\)'define',\1'undef',g" \
-e "s,\(i_fcntl=\)'undef',\1'define',g" \
-e "s,\(h_fcntl=\)'false',\1'true',g" \
-e "s,\(d_strerror_r=\)'define',\1'undef',g" \
$(PKG_BUILD_DIR)/config.sh
endif
$(PERL_CMD) files/perlconfig.pl -Dowrt:target_cc='$(TARGET_CC)' \
-Dowrt:target_cross='$(TARGET_CROSS)' \
-Dowrt:cflags='$(TARGET_CFLAGS_PERL) $(TARGET_CPPFLAGS_PERL)' \
-Dowrt:ldflags='-rdynamic $(TARGET_LDFLAGS)' \
-Dowrt:libc=$(CONFIG_LIBC) \
-Dowrt:ipv6=$(if $($(CONFIG_IPV6)),define,undef) \
-Dowrt:threads=$(if $(CONFIG_PERL_THREADS),yes,no) \
-Dowrt:staging_dir='$(STAGING_DIR)' \
-Dowrt:host_perl_prefix='$(HOST_PERL_PREFIX)' \
files/version.config \
files/base.config \
files/$(patsubst i386,i486,$(ARCH)).config \
files/architecture.config \
files/signal.config \
files/threads.config \
files/libc.config \
files/misc.config \
> $(PKG_BUILD_DIR)/config.sh
(cd $(PKG_BUILD_DIR) && ./Configure -S)
install -m 0644 $(PKG_BUILD_DIR)/config.h $(PKG_BUILD_DIR)/xconfig.h
endef


+ 58
- 0
lang/perl/files/README.config View File

@ -0,0 +1,58 @@
-- Perl configuration --
Perl uses a huge configuration file, normally generated via the Configure script
at build-time. This fails when cross-compiling though, so we need to supply our
own.
We're using perlconfig.pl to piece together the final configuration from a bunch
of configuration files(all ending in .config). Please refer to perlconfig.pl's
POD for information on usage and syntax.
Throughout the files, you will see a bunch of references to private symbols with
the prefix "owrt". These are used to control output in an effort to both
simplify writing configuration files, as well as to provide switchable options
to select the feature set of the resulting perl installation.
The following will be a summary/quick reference of all private symbols we're
currently using:
Passed via architecture configuration file(mipsel.config, i486.config, ...)
---------------------------------------------------------------------------
Symbol Values Description
owrt:bits 32/64 Target's native word length.
owrt:endian little/big Target's endianness.
owrt:arch mipsel, i486, ... Target's architecture name.
owrt:sig_count 64/128 Number of signals the target
provides(NSIG - 1).
owrt:sigs * Symbolic names of the first 32 signals
this architecture provides, in numeric
order. Seperated by whitespaces.
owrt:sig_name_extra * Symbolic names of any additional signals
this architecture provides after
owrt:sig_count. Seperated by
whitespaces.
owrt:sig_num_extra * Numeric values associated with the
signal names provided in
owrt:sig_name_extra. Seperated by
whitespaces.
Passed via command line
-----------------------
Symbol Values Description
owrt:libc glibc/uclibc/musl Which C library implementation is in
use.
owrt:threads yes/no Whether to enable threading support.
owrt:ipv6 define/undef Whether to enable IPv6 support.
owrt:target_cross * Target architecture's host triplet.
owrt:target_cc * C compiler to use.
owrt:cflags * Additional C compiler flags.
owrt:ldflags * Additional linker flags.
owrt:staging_dir * Same as OpenWRT buildroot's
$(STAGING_DIR).
owrt:host_perl_prefix * host-perl installation prefix.
Passed via version.config
-------------------------
Symbol Values Description
owrt:perllibpath * Path to perl library files, from the
target's point of view.

+ 121
- 0
lang/perl/files/architecture.config View File

@ -0,0 +1,121 @@
alignbytes='8'
($owrt:bits eq '32') {
($owrt:endian eq 'little') {
byteorder='1234'
}
($owrt:endian eq 'big') {
byteorder='4321'
}
# Types
ivsize='4'
uvsize='4'
longsize='4'
longdblsize='8'
ptrsize='4'
#quadkind='3'
#doublekind='3'
#longdblkind='0'
i8type='signed char'
i16type='signed short'
i32type='signed long'
i64type='signed long long'
u32type='unsigned long'
u64type='unsigned long long'
quadtype='long long'
uquadtype='unsigned long long'
sizesize='4'
use64bitall='undef'
use64bitint='undef'
uidformat='"lu"'
gidformat='"lu"'
selectminbits='32'
sGMTIME_max='2147483647'
sGMTIME_min='-2147483648'
sLOCALTIME_max='2147483647'
sLOCALTIME_min='-2147483648'
sPRIi64='"Li"'
sPRIo64='"Lo"'
sPRIu64='"Lu"'
sPRIx64='"Lx"'
sPRId64='"Ld"'
netdb_host_type='const void *'
nv_preserves_uv_bits='32'
d_nv_preserves_uv='define'
d_printf_format_null='define'
d_u32align='undef'
}
($owrt:bits eq '64') {
($owrt:endian eq 'little') {
byteorder='12345678'
}
($owrt:endian eq 'big') {
byteorder='87654321'
}
# Types
ivsize='8'
uvsize='8'
longsize='8'
longdblsize='16'
ptrsize='8'
quadtype='long'
i16type='signed short'
i32type='signed int'
i64type='signed long'
i8type='signed char'
u32type='unsigned int'
u64type='unsigned long'
uquadtype='unsigned long'
sizesize='8'
uidformat='"u"'
gidformat='"u"'
selectminbits='64'
sGMTIME_max='67768036191676799'
sGMTIME_min='-62167219200'
sLOCALTIME_max='67768036191673199'
sLOCALTIME_min='-62167222408'
sPRIi64='"li"'
sPRIo64='"lo"'
sPRIu64='"lu"'
sPRIx64='"lx"'
sPRId64='"ld"'
netdb_host_type='char *'
nv_preserves_uv_bits='53'
d_nv_preserves_uv='undef'
d_printf_format_null='undef'
d_u32align='define'
use64bitall='define'
use64bitint='define'
}
# Only defined by i486 and x86_64. Provide defaults for all others
(!defined($sPRIEUldbl)) {
sPRIEUldbl='"E"'
sPRIFUldbl='"F"'
sPRIGUldbl='"G"'
sPRIXU64='"LX"'
sPRIeldbl='"e"'
sPRIfldbl='"f"'
sPRIgldbl='"g"'
sSCNfldbl='"f"'
}

+ 19
- 0
lang/perl/files/arm.config View File

@ -0,0 +1,19 @@
owrt:arch=arm
owrt:bits=32
owrt:endian=little
ccsymbols='__ARM_ARCH_3__=1'
cppccsymbols=''
cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 _LARGEFILE_SOURCE=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 linux=1 __linux=1 __linux__=1 unix=1 __unix=1 __unix__=1'
d_casti32='define'
d_modflproto='undef'
doublekind='3'
fpossize='20'
longdblkind='0'
need_va_copy='undef'
quadkind='3'
owrt:sig_count='64'
owrt:sigs='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS'
owrt:sig_name_extra='IOT CLD POLL UNUSED'
owrt:sig_num_extra='6 17 29 31'

+ 19
- 0
lang/perl/files/armeb.config View File

@ -0,0 +1,19 @@
owrt:arch=armeb
owrt:bits=32
owrt:endian=big
ccsymbols='__ARM_ARCH_3__=1'
cppccsymbols=''
cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 _LARGEFILE_SOURCE=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 linux=1 __linux=1 __linux__=1 unix=1 __unix=1 __unix__=1'
d_casti32='define'
d_modflproto='undef'
doublekind='4'
fpossize='20'
longdblkind='0'
need_va_copy='undef'
quadkind='3'
owrt:sig_count='64'
owrt:sigs='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS'
owrt:sig_name_extra='IOT CLD POLL UNUSED'
owrt:sig_num_extra='6 17 29 31'

lang/perl/files/config.sh-i486.in → lang/perl/files/base.config View File


+ 0
- 1227
lang/perl/files/config.sh-arm-mt.in
File diff suppressed because it is too large
View File


+ 0
- 1226
lang/perl/files/config.sh-arm.in
File diff suppressed because it is too large
View File


+ 0
- 1226
lang/perl/files/config.sh-armeb-mt.in
File diff suppressed because it is too large
View File


+ 0
- 1225
lang/perl/files/config.sh-armeb.in
File diff suppressed because it is too large
View File


+ 0
- 1229
lang/perl/files/config.sh-avr32-mt.in
File diff suppressed because it is too large
View File


+ 0
- 1228
lang/perl/files/config.sh-avr32.in
File diff suppressed because it is too large
View File


+ 0
- 1213
lang/perl/files/config.sh-i486-mt.in
File diff suppressed because it is too large
View File


+ 0
- 1227
lang/perl/files/config.sh-mips-mt.in
File diff suppressed because it is too large
View File


+ 0
- 1226
lang/perl/files/config.sh-mips.in
File diff suppressed because it is too large
View File


+ 0
- 1227
lang/perl/files/config.sh-mips64-mt.in
File diff suppressed because it is too large
View File


+ 0
- 1226
lang/perl/files/config.sh-mips64.in
File diff suppressed because it is too large
View File


+ 0
- 1213
lang/perl/files/config.sh-mipsel-mt.in
File diff suppressed because it is too large
View File


+ 0
- 1212
lang/perl/files/config.sh-mipsel.in
File diff suppressed because it is too large
View File


+ 0
- 1227
lang/perl/files/config.sh-powerpc-mt.in
File diff suppressed because it is too large
View File


+ 0
- 1226
lang/perl/files/config.sh-powerpc.in
File diff suppressed because it is too large
View File


+ 0
- 1213
lang/perl/files/config.sh-x86_64-mt.in
File diff suppressed because it is too large
View File


+ 0
- 1212
lang/perl/files/config.sh-x86_64.in
File diff suppressed because it is too large
View File


+ 28
- 0
lang/perl/files/i486.config View File

@ -0,0 +1,28 @@
owrt:arch=i486
owrt:bits=32
owrt:endian=little
ccsymbols=''
cppccsymbols=''
cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 _LARGEFILE_SOURCE=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 i386=1 __i386=1 __i386__=1 linux=1 __linux=1 __linux__=1 unix=1 __unix=1 __unix__=1'
d_casti32='undef'
d_modflproto='define'
doublekind='3'
fpossize='20'
longdblkind='3'
need_va_copy='undef'
quadkind='3'
sPRIEUldbl='"LE"'
sPRIFUldbl='"LF"'
sPRIGUldbl='"LG"'
sPRIXU64='"LX"'
sPRIeldbl='"Le"'
sPRIfldbl='"Lf"'
sPRIgldbl='"Lg"'
sSCNfldbl='"Lf"'
owrt:sig_count='64'
owrt:sigs='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS'
owrt:sig_name_extra='IOT CLD POLL UNUSED'
owrt:sig_num_extra='6 17 29 31'

+ 45
- 0
lang/perl/files/libc.config View File

@ -0,0 +1,45 @@
($owrt:libc eq 'glibc') {
perllibs="$perllibs -lbsd"
ldflags="$ldflags -L$owrt:staging_dir/lib"
}
# uclibc does not provide crypt_r(). Enable crypt() usage for glibc builds only
($owrt:libc ne 'glibc') {
crypt_r_proto='0'
i_crypt='undef'
d_crypt='undef'
d_crypt_r='undef'
}
($owrt:libc eq 'musl') {
d_stdio_ptr_lval='undef'
d_stdio_ptr_lval_sets_cnt='undef'
d_stdiobase='undef'
d_stdstdio='undef'
d_getnetbyname_r='undef'
d_getprotobyname_r='undef'
d_getpwent_r='undef'
d_getservent_r='undef'
d_gethostent_r='undef'
d_getnetent_r='undef'
d_getnetbyaddr_r='undef'
d_getprotoent_r='undef'
d_getprotobynumber_r='undef'
d_getgrent_r='undef'
getprotobyname_r='undef'
getpwent_r='undef'
getservent_r='undef'
gethostent_r='undef'
getnetent_r='undef'
getnetbyaddr_r='undef'
getprotoent_r='undef'
getprotobynumber_r='undef'
getgrent_r='undef'
i_fcntl='define'
h_fcntl='true'
d_strerror_r='undef'
}

+ 19
- 0
lang/perl/files/mips.config View File

@ -0,0 +1,19 @@
owrt:arch=mips
owrt:bits=32
owrt:endian=big
ccsymbols=''
cppccsymbols=''
cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 LANGUAGE_C=1 _LANGUAGE_C=1 __LANGUAGE_C=1 __LANGUAGE_C__=1 _LARGEFILE_SOURCE=1 MIPSEL=1 _MIPSEL=1 __MIPSEL=1 __MIPSEL__=1 _MIPS_FPSET=16 _MIPS_ISA=_MIPS_ISA_MIPS1 _MIPS_SIM=1 _MIPS_SZINT=32 _MIPS_SZLONG=32 _MIPS_SZPTR=32 __PIC__=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 R3000=1 _R3000=1 __R3000=1 __R3000__=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 linux=1 __linux=1 __linux__=1 mips=1 _mips=1 __mips=1 __mips__=1 __pic__=1 unix=1 __unix=1 __unix__=1'
d_casti32='define'
d_modflproto='undef'
doublekind='4'
fpossize='24'
longdblkind='0'
need_va_copy='undef'
quadkind='3'
owrt:sig_count=128
owrt:sigs='ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM USR1 USR2 CHLD PWR WINCH URG IO STOP TSTP CONT TTIN TTOU VTALRM PROF XCPU XFSZ'
owrt:sig_name_extra='IOT CLD POLL'
owrt:sig_num_extra='6 18 22'

+ 19
- 0
lang/perl/files/mips64.config View File

@ -0,0 +1,19 @@
owrt:arch=mips64
owrt:bits=64
owrt:endian=big
ccsymbols=''
cppccsymbols=''
cppsymbols=''
d_casti32='define'
d_modflproto='undef'
doublekind='4'
fpossize='24'
longdblkind='6'
need_va_copy='define'
quadkind='2'
owrt:sig_count=128
owrt:sigs='ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM USR1 USR2 CHLD PWR WINCH URG IO STOP TSTP CONT TTIN TTOU VTALRM PROF XCPU XFSZ'
owrt:sig_name_extra='IOT CLD POLL'
owrt:sig_num_extra='6 18 22'

+ 19
- 0
lang/perl/files/mipsel.config View File

@ -0,0 +1,19 @@
owrt:arch=mipsel
owrt:bits=32
owrt:endian=little
ccsymbols=''
cppccsymbols=''
cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 LANGUAGE_C=1 _LANGUAGE_C=1 __LANGUAGE_C=1 __LANGUAGE_C__=1 _LARGEFILE_SOURCE=1 MIPSEL=1 _MIPSEL=1 __MIPSEL=1 __MIPSEL__=1 _MIPS_FPSET=16 _MIPS_ISA=_MIPS_ISA_MIPS1 _MIPS_SIM=1 _MIPS_SZINT=32 _MIPS_SZLONG=32 _MIPS_SZPTR=32 __PIC__=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 R3000=1 _R3000=1 __R3000=1 __R3000__=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 linux=1 __linux=1 __linux__=1 mips=1 _mips=1 __mips=1 __mips__=1 __pic__=1 unix=1 __unix=1 __unix__=1'
d_casti32='define'
d_modflproto='undef'
doublekind='3'
fpossize='24'
longdblkind='0'
need_va_copy='undef'
quadkind='3'
owrt:sig_count=128
owrt:sigs='ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM USR1 USR2 CHLD PWR WINCH URG IO STOP TSTP CONT TTIN TTOU VTALRM PROF XCPU XFSZ'
owrt:sig_name_extra='IOT CLD POLL'
owrt:sig_num_extra='6 18 22'

+ 11
- 0
lang/perl/files/misc.config View File

@ -0,0 +1,11 @@
cf_email='naoir@gmx.net'
osvers='3.18.19'
gccversion='4.8.0'
myhostname='OpenWrt'
cf_time='Thu Jan 1 12:00:00 CEST 2015'
perladmin="$cf_email"
archname="$owrt:arch-linux-$owrt:libc"
targetarch="$archname"
myarchname="$archname"
myuname="Linux $myhostname $osvers #1 SMP $cf_time @{[$owrt:arch =~ s/(el|eb)$//r]} GNU/Linux"

+ 313
- 0
lang/perl/files/perlconfig.pl View File

@ -0,0 +1,313 @@
#!/usr/bin/perl
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# Copyright 2015 Marcel Denia
=head1 NAME
perlconfig.pl
=head1 SYNOPSIS
B<perlconfig.pl> [B<-Dsymbol>=I<value>, ...] [B<-dsymbol>=I<value>, ...] I<[files]>
Generate a configuration file suitable for (cross-)compiling perl 5.
=head1 OPTIONS
=over
=item B<-Dsymbol=value>
The symbol identified by I<name> will have the literal value I<value>.
When generating the configuration file, it's value will be printed enclosed by
single quotation marks(').
=item B<-dsymbol=value>
The symbol identified by I<name> will have the literal value I<value>.
=back
=head1 DESCRIPTION
B<perlconfig.pl> is a program to compile and generate configuration files ready
to be used as a "config.sh" file for compiling perl 5. It does so by processing
specially-made configuration files(usually called *.config), typically augmented
by command-line definitions.
B<perlconfig.pl>'s intent is to be used in place of perl 5's own Configure
script in situations where it can not be run, like cross-compiling.
=head2 File syntax
B<perlconfig.pl>'s configuration files a consist of symbol definitions in
different variations, each one assigning a specific symbol identified by a name
some value, as well as conditional blocks in order to allow for some
flexibility.
=head3 Symbol names
A symbol name has to consist entirely of alphanumeric characters as well as
the underscore(_) character. In addition, symbol names may be prefixed with an
all-lowercase string, seperated by a colon(:):
my:name=value
Having a zero-length prefix string is also valid:
:name=value
Symbols prefixed that way are called private symbols. They act exactly like
regular symbols, with the only difference being that they will B<not> be written
to the final configuration file.
=head3 Symbol definitions
A symbol definition is in the form of a simple name/value pair, seperated by
an equals sign(=):
name=value
I<value> can be anything really. However, there are 3 notations, with
differences in quoting and interpolation:
=over
=item name=foo
The symbol identified by I<name> will have the literal value I<foo>.
=item name='foo'
The symbol identified by I<name> will have the literal value I<foo>.
When generating the configuration file, it's value will be printed enclosed by
single quotation marks(').
=item name="foo"
The symbol identified by I<name> will have the value of I<foo>
S<B<after interpolation>>(as described in L</Interpolation>).
When generating the configuration file, it's value will be printed enclosed by
single quotation marks(').
=back
=head3 Conditional blocks
A conditional block is of the form
(condition) {
...
}
B<perlconfig.pl> will execute everything enclosed in the curly braces({ and }),
or inside the BLOCK in Perl 5 terms, if I<condition> evaluates to any true
value. I<condition> will go through interpolation as described in
L</Interpolation>. It may contain any valid Perl 5 expression. Some common
examples are:
=over
=item $name eq 'foo'
Evaluates to true if configuration symbol I<name> is literally equal to I<foo>.
=item $name ne 'foo'
Evaluates to true if configuration symbol I<name> is B<not> literally equal to
I<foo>.
=item defined($name)
Evaluates to true if configuration symbol I<name> is defined(has any usable
value, see L<perlfunc/defined>).
=back
Conditional blocks may be nested inside conditional blocks. Note that the
opening curl brace({) has to be on the same line as your condition.
=head3 Comments
All lines starting with nothing or any number of whitespaces, followed by a
hash sign(#), are considered comments and will be completely ignored by
B<perlconfig.pl>.
=head3 Interpolation
In certain situations(see above), B<perlconfig.pl> will interpolate strings or
constructs in order to allow you to refer to configuration symbols or embed
code.
Interpolated strings are subject to the following rules:
=over
=item You may not include any single(') or double(") quotation marks.
You can use \qq in order to include double quotation marks(") in your string.
=item $name and ${name} reference configuration symbols
You can easily refer to existing configuration symbols using the commmon $name
or ${name} syntax. In case you want to refer to the perl variable named $name,
write \$name. This is useful for embedding code.
=item Perl 5 interpolation rules apply
Aside from the above, you may include anything that is also valid for an
interpolated(qq//) string in Perl 5. For instance, it's perfectly valid to
execute code using the @{[]} construct.
=back
=head1 EXAMPLES
As a simple example, consider the following configuration file, named
"example.config":
recommendation='The Perl you want is'
($:maturity eq 'stable') {
recommendation="$recommendation Perl 5"
}
($:maturity eq 'experimental') {
recommendation="$recommendation Perl 6(try Rakudo!)"
}
Executing it using these command-lines will yield the following results:
=over
=item $ perlconfig.pl -D:maturity=stable example.config
recommendation='The Perl you want is Perl 5'
=item $ perlconfig.pl -D:maturity=experimental example.config
recommendation='The Perl you want is Perl 6(try Rakudo!)'
=back
=head1 AUTHOR
Marcel Denia <naoir@gmx.net>
=head1 COPYRIGHT AND LICENSE
Copyright 2015 Marcel Denia
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
=cut
use strict;
use warnings;
use List::Util qw/all/;
my $symbol_name_prefix_regex = '(?:[a-z]*:)';
my $symbol_name_regex = "($symbol_name_prefix_regex?(?:[a-zA-Z0-9_]+))";
my %config;
sub interpolate {
my $string = shift;
my %options = @_;
# First, convert $foo into ${foo}
$string =~ s/(?<!\\)\$$symbol_name_regex/\${$1}/gs;
# Make ${foo} into $config{'foo'}->{value}
$string =~ s/\$\{$symbol_name_regex\}/\$config{\'$1\'}->{value}/g;
# Un-escape \$foo
$string =~ s/\\\$/\$/g;
# Turn \qq into "
$string =~ s/\\qq/\\"/g;
return $string;
}
# Parse command-line symbol definitions
while ($ARGV[0]) {
if ($ARGV[0] =~ /^-([D|d])$symbol_name_regex=(.*)$/) {
$config{$2} = { value => $3, quoted => $1 eq 'D' };
shift(@ARGV);
}
else {
last;
}
}
# Process configuration files
my @condition_stack = ( 1 );
for my $file (@ARGV) {
open(my $fh, '<', $file) or die "Can't open $file: $!\n";
while (my $line = <$fh>) {
chomp($line);
if ($line =~ /^\s*$symbol_name_regex=(.*)$/) { # A symbol definition
if (all {$_ == 1} @condition_stack) {
my $symbol = $1;
(my $quote_begin, my $value, my $quote_end) = $2 =~ /^(['|"])?([^'"]*)(['|"])?$/;
$quote_begin = '' unless defined $quote_begin;
$quote_end = '' unless defined $quote_end;
die "$file:$.: Unmatched quotes in \"$line\"\n" unless $quote_begin eq $quote_end;
if ($quote_begin eq '"') {
$config{$symbol} = { value => eval('"' . interpolate($2) . '"'), quoted => 1 };
}
else {
$config{$symbol} = { value => $2, quoted => $quote_begin eq '\'' };
}
}
}
elsif ($line =~ /^\s*\((.*)\)\s?{$/) { # A conditional block
if (eval(interpolate($1))) {
push(@condition_stack, 1);
}
else {
push(@condition_stack, 0);
}
}
elsif ($line =~ /^\s*}$/) { # Closing a conditional block
pop(@condition_stack);
die "$file:$.: Closing non-existent block\n" unless @condition_stack;
}
elsif ($line =~ (/^\s*$/) || ($line =~ /^\s*#/)) { # An empty line or comment
}
else {
die "$file:$.: Malformed line: \"$line\"\n";
}
}
}
# Output
for (sort(keys(%config))) {
my $quote = $config{$_}->{quoted} ? '\'' : '';
print("$_=$quote$config{$_}->{value}$quote\n") unless $_ =~ /^$symbol_name_prefix_regex/;
}

+ 19
- 0
lang/perl/files/powerpc.config View File

@ -0,0 +1,19 @@
owrt:arch=powerpc
owrt:bits=32
owrt:endian=big
ccsymbols='__gnu_linux__=1 __linux=1 __linux__=1 __unix=1 __unix__=1 system=linux system=posix system=unix'
cppccsymbols='linux=1 unix=1'
cppsymbols='_BIG_ENDIAN=1 __BIG_ENDIAN__=1 __ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 _LARGEFILE_SOURCE=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 __linux=1 __linux__=1 __unix=1 __unix__=1'
d_casti32='undef'
d_modflproto='undef'
doublekind='4'
fpossize='24'
longdblkind='0'
need_va_copy='define'
quadkind='3'
owrt:sig_count='64'
owrt:sigs='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS'
owrt:sig_name_extra='IOT CLD POLL UNUSED'
owrt:sig_num_extra='6 17 29 31'

+ 18
- 0
lang/perl/files/signal.config View File

@ -0,0 +1,18 @@
# Signal table helper
(defined($owrt:sigs)) {
sig_name="$owrt:sigs"
(($owrt:libc eq 'glibc') || ($owrt:libc eq 'uclibc')) {
sig_name="$sig_name NUM32 NUM33 RTMIN NUM35 NUM36"
}
($owrt:libc eq 'musl') {
sig_name="$sig_name NUM32 NUM33 NUM34 RTMIN NUM36"
}
sig_name="$sig_name @{[map({qq/NUM\$_/} 37..$owrt:sig_count - 2)]} RTMAX $owrt:sig_name_extra"
sig_num="@{[0..$owrt:sig_count - 1]} $owrt:sig_num_extra "
sig_count="$owrt:sig_count"
sig_size="@{[scalar(split(q/ /, $sig_name))]}"
sig_name_init="@{[join(q/, /, map({qq/\qq\$_\qq/} split(q/ /, $sig_name)))]}, 0"
sig_num_init="@{[join(q/, /, split(q/ /, $sig_num))]}, 0"
}

+ 197
- 0
lang/perl/files/threads.config View File

@ -0,0 +1,197 @@
($owrt:threads eq 'yes') {
# Configure arguments
config_args="$config_args -Dusethreads"
config_arg2='-Dusethreads'
config_argc=2
# Options
useithreads='define'
usemultiplicity='define'
usethreads='define'
# Flags and related
ccflags="-D_REENTRANT -D_GNU_SOURCE $ccflags"
cppflags="-D_REENTRANT -D_GNU_SOURCE $cppflags"
perllibs="-lpthread $perllibs"
libs="-lpthread $libs"
libsfiles="libpthread.so $libsfiles"
libswanted="pthread $libswanted"
crypt_r_proto='REENTRANT_PROTO_B_CCS'
i_crypt='define'
d_crypt='define'
d_crypt_r='define'
# Prototypes
asctime_r_proto='REENTRANT_PROTO_B_SB'
ctime_r_proto='REENTRANT_PROTO_B_SB'
drand48_r_proto='REENTRANT_PROTO_I_ST'
getgrent_r_proto='REENTRANT_PROTO_I_SBWR'
getgrgid_r_proto='REENTRANT_PROTO_I_TSBWR'
getgrnam_r_proto='REENTRANT_PROTO_I_CSBWR'
gethostbyaddr_r_proto='REENTRANT_PROTO_I_TsISBWRE'
gethostbyname_r_proto='REENTRANT_PROTO_I_CSBWRE'
gethostent_r_proto='REENTRANT_PROTO_I_SBWRE'
getlogin_r_proto='REENTRANT_PROTO_I_BW'
getnetbyaddr_r_proto='REENTRANT_PROTO_I_uISBWRE'
getnetbyname_r_proto='REENTRANT_PROTO_I_CSBWRE'
getnetent_r_proto='REENTRANT_PROTO_I_SBWRE'
getprotobyname_r_proto='REENTRANT_PROTO_I_CSBWR'
getprotobynumber_r_proto='REENTRANT_PROTO_I_ISBWR'
getprotoent_r_proto='REENTRANT_PROTO_I_SBWR'
getpwent_r_proto='REENTRANT_PROTO_I_SBWR'
getpwnam_r_proto='REENTRANT_PROTO_I_CSBWR'
getpwuid_r_proto='REENTRANT_PROTO_I_TSBWR'
getservbyname_r_proto='REENTRANT_PROTO_I_CCSBWR'
getservbyport_r_proto='REENTRANT_PROTO_I_ICSBWR'
getservent_r_proto='REENTRANT_PROTO_I_SBWR'
getspnam_r_proto='REENTRANT_PROTO_I_CSBWR'
gmtime_r_proto='REENTRANT_PROTO_S_TS'
localtime_r_proto='REENTRANT_PROTO_S_TS'
random_r_proto='REENTRANT_PROTO_I_St'
readdir64_r_proto='REENTRANT_PROTO_I_TSR'
readdir_r_proto='REENTRANT_PROTO_I_TSR'
srand48_r_proto='REENTRANT_PROTO_I_LS'
srandom_r_proto='REENTRANT_PROTO_I_TS'
strerror_r_proto='REENTRANT_PROTO_B_IBW'
tmpnam_r_proto='REENTRANT_PROTO_B_B'
ttyname_r_proto='REENTRANT_PROTO_I_IBW'
# Defines
d_asctime_r='define'
d_ctime_r='define'
d_drand48_r='define'
d_fds_bits='define'
d_fegetround='undef'
d_getgrent_r='define'
d_getgrgid_r='define'
d_getgrnam_r='define'
d_gethostbyaddr_r='define'
d_gethostbyname_r='define'
d_gethostent_r='define'
d_getlogin_r='define'
d_getnetbyaddr_r='define'
d_getnetbyname_r='define'
d_getnetent_r='define'
d_getprotobyname_r='define'
d_getprotobynumber_r='define'
d_getprotoent_r='define'
d_getpwent_r='define'
d_getpwnam_r='define'
d_getpwuid_r='define'
d_getservbyname_r='define'
d_getservbyport_r='define'
d_getservent_r='define'
d_getspnam_r='define'
d_gmtime_r='define'
d_j0='undef'
d_j0l='undef'
d_localtime_r='define'
d_localtime_r_needs_tzset='define'
d_nexttoward='undef'
d_off64_t='define'
d_pthread_atfork='define'
d_pthread_yield='define'
d_random_r='define'
d_readdir64_r='define'
d_readdir_r='define'
d_srand48_r='define'
d_srandom_r='define'
d_sresgproto='define'
d_sresuproto='define'
d_strerror_r='define'
d_tmpnam_r='define'
d_ttyname_r='define'
}
($owrt:threads eq 'no') {
# Options
useithreads='undef'
usemultiplicity='undef'
usethreads='undef'
# Prototyypes
asctime_r_proto='0'
crypt_r_proto='0'
ctime_r_proto='0'
drand48_r_proto='0'
getgrent_r_proto='0'
getgrgid_r_proto='0'
getgrnam_r_proto='0'
gethostbyaddr_r_proto='0'
gethostbyname_r_proto='0'
gethostent_r_proto='0'
getlogin_r_proto='0'
getnetbyaddr_r_proto='0'
getnetbyname_r_proto='0'
getnetent_r_proto='0'
getprotobyname_r_proto='0'
getprotobynumber_r_proto='0'
getprotoent_r_proto='0'
getpwent_r_proto='0'
getpwnam_r_proto='0'
getpwuid_r_proto='0'
getservbyname_r_proto='0'
getservbyport_r_proto='0'
getservent_r_proto='0'
getspnam_r_proto='0'
gmtime_r_proto='0'
# Defines
d_asctime_r='undef'
d_crypt='define'
d_crypt_r='undef'
d_ctime_r='undef'
d_drand48_r='undef'
d_fds_bits='undef'
d_fegetround='define'
d_getgrent_r='undef'
d_getgrgid_r='undef'
d_getgrnam_r='undef'
d_gethostbyaddr_r='undef'
d_gethostbyname_r='undef'
d_gethostent_r='undef'
d_getlogin_r='undef'
d_getnetbyaddr_r='undef'
d_getnetbyname_r='undef'
d_getnetent_r='undef'
d_getprotobyname_r='undef'
d_getprotobynumber_r='undef'
d_getprotoent_r='undef'
d_getpwent_r='undef'
d_getpwnam_r='undef'
d_getpwuid_r='undef'
d_getservbyname_r='undef'
d_getservbyport_r='undef'
d_getservent_r='undef'
d_getspnam_r='undef'
d_gmtime_r='undef'
d_j0='define'
d_j0l='define'
d_localtime_r='undef'
d_localtime_r_needs_tzset='undef'
d_nexttoward='define'
d_off64_t='undef'
d_pthread_atfork='undef'
d_pthread_yield='undef'
d_random_r='undef'
d_readdir64_r='undef'
d_readdir_r='undef'
d_srand48_r='undef'
d_srandom_r='undef'
d_sresgproto='undef'
d_sresuproto='undef'
d_strerror_r='undef'
d_tmpnam_r='undef'
d_ttyname_r='undef'
i_crypt='define'
localtime_r_proto='0'
random_r_proto='0'
readdir64_r_proto='0'
readdir_r_proto='0'
srand48_r_proto='0'
srandom_r_proto='0'
strerror_r_proto='0'
tmpnam_r_proto='0'
ttyname_r_proto='0'
}

+ 38
- 0
lang/perl/files/version.config View File

@ -0,0 +1,38 @@
# Set the version here
PERL_REVISION=5
PERL_VERSION=22
PERL_SUBVERSION=0
# (api_revison, api_version, api_subversion) = (revision, version, 0) usually
PERL_API_REVISION=5
PERL_API_VERSION=22
PERL_API_SUBVERSION=0
known_extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash'
extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash Compress/Zlib Errno IO_Compress_Base IO_Compress_Zlib Unicode/Normalize'
nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators Unicode/Normalize version'
dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate XS/APItest XS/Typemap arybase attributes mro re threads threads/shared'
# No need to change anything from here on
owrt:perllibpath="/usr/lib/perl5/$PERL_REVISION.$PERL_VERSION"
revision="$PERL_REVISION"
patchlevel="$PERL_VERSION"
subversion="$PERL_SUBVERSION"
version_patchlevel_string="version $PERL_VERSION subversion $PERL_SUBVERSION"
version="$PERL_REVISION.$PERL_VERSION.$PERL_SUBVERSION"
api_revision="$PERL_API_REVISION"
api_version="$PERL_API_VERSION"
api_subversion="$PERL_API_SUBVERSION"
api_versionstring="$PERL_API_REVISION.$PERL_API_VERSION.$PERL_API_SUBVERSION"
privlib="$owrt:perllibpath"
privlibexp="$privlib"
archlib="$owrt:perllibpath"
archlibexp="$archlib"
installarchlib="$owrt:perllibpath"
installprivlib="$owrt:perllibpath"
installsitearch="$owrt:perllibpath"
installsitelib="$owrt:perllibpath"

+ 28
- 0
lang/perl/files/x86_64.config View File

@ -0,0 +1,28 @@
owrt:arch=x86_64
owrt:bits=64
owrt:endian=little
ccsymbols=''
cppccsymbols=''
cppsymbols='__ELF__=1 _LP64=1 __FLT_EVAL_METHOD__=0 __FXSR__=1 __GCC_ATOMIC_LLONG_LOCK_FREE=2 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8=1 __INT64_MAX__=9223372036854775807L __INT64_TYPE__=long\ int __INTMAX_MAX__=9223372036854775807L __INTMAX_TYPE__=long\ int __INTPTR_MAX__=9223372036854775807L __INTPTR_TYPE__=long\ int __INT_FAST16_MAX__=9223372036854775807L __INT_FAST16_TYPE__=long\ int __INT_FAST32_MAX__=9223372036854775807L __INT_FAST32_TYPE__=long\ int __INT_FAST64_MAX__=9223372036854775807L __INT_FAST64_TYPE__=long\ int __INT_LEAST64_MAX__=9223372036854775807L __INT_LEAST64_TYPE__=long\ int __LONG_MAX__=9223372036854775807L __LP64__=1 __MMX__=1 __PTRDIFF_MAX__=9223372036854775807L __PTRDIFF_TYPE__=long\ int __SIZEOF_INT128__=16 __SIZEOF_LONG_DOUBLE__=16 __SIZEOF_LONG__=8 __SIZEOF_POINTER__=8 __SIZEOF_PTRDIFF_T__=8 __SIZEOF_SIZE_T__=8 __SIZE_MAX__=18446744073709551615UL __SIZE_TYPE__=long\ unsigned\ int __SSE2_MATH__=1 __SSE2__=1 __SSE_MATH__=1 __SSE__=1 __UINT64_MAX__=18446744073709551615UL __UINT64_TYPE__=long\ unsigned\ int __UINTMAX_MAX__=18446744073709551615UL __UINTMAX_TYPE__=long\ unsigned\ int __UINTPTR_MAX__=18446744073709551615UL __UINTPTR_TYPE__=long\ unsigned\ int __UINT_FAST16_MAX__=18446744073709551615UL __UINT_FAST16_TYPE__=long\ unsigned\ int __UINT_FAST32_MAX__=18446744073709551615UL __UINT_FAST32_TYPE__=long\ unsigned\ int __UINT_FAST64_MAX__=18446744073709551615UL __UINT_FAST64_TYPE__=long\ unsigned\ int __UINT_LEAST64_MAX__=18446744073709551615UL __UINT_LEAST64_TYPE__=long\ unsigned\ int __WCHAR_MAX__=2147483647 __WCHAR_MIN__=(-2147483647\ -\ 1) __WCHAR_TYPE__=int __amd64=1 __amd64__=1 __code_model_small__=1 __k8=1 __k8__=1 __x86_64=1 __x86_64__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 _LARGEFILE_SOURCE=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 linux=1 __linux=1 __linux__=1 unix=1 __unix=1 __unix__=1'
d_casti32='undef'
d_modflproto='define'
doublekind='3'
fpossize='16'
longdblkind='3'
need_va_copy='define'
quadkind='2'
sPRIEUldbl='"LE"'
sPRIFUldbl='"LF"'
sPRIGUldbl='"LG"'
sPRIXU64='"lX"'
sPRIeldbl='"Le"'
sPRIfldbl='"Lf"'
sPRIgldbl='"Lg"'
sSCNfldbl='"Lf"'
owrt:sig_count='64'
owrt:sigs='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS'
owrt:sig_name_extra='IOT CLD POLL UNUSED'
owrt:sig_num_extra='6 17 29 31'

Loading…
Cancel
Save