Merge pull request #854 from Naoir/perl-threads

perl: Add initial threading support
This commit is contained in:
Steven Barth 2015-02-06 10:18:51 +01:00
commit 922dc01896
12 changed files with 10447 additions and 7 deletions

View file

@ -1,6 +1,11 @@
menu "Configuration" menu "Configuration"
depends on PACKAGE_perl depends on PACKAGE_perl
config PERL_THREADS
bool "Enable threading support"
default y if (mips || mipsel || x86 || x86_64 || armeb || arm) && (USE_UCLIBC || USE_EGLIBC)
default n
config PERL_TESTS config PERL_TESTS
bool "Include perl tests" bool "Include perl tests"
default n default n

View file

@ -1,5 +1,5 @@
# #
# Copyright (C) 2006-2014 OpenWrt.org # Copyright (C) 2006-2015 OpenWrt.org
# #
# This is free software, licensed under the GNU General Public License v2. # This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information. # See /LICENSE for more information.
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=perl PKG_NAME:=perl
PKG_VERSION:=5.20.1 PKG_VERSION:=5.20.1
PKG_RELEASE:=2 PKG_RELEASE:=3
PKG_SOURCE_URL:=ftp://ftp.cpan.org/pub/CPAN/src/5.0 \ PKG_SOURCE_URL:=ftp://ftp.cpan.org/pub/CPAN/src/5.0 \
http://www.cpan.org/src/5.0/perl-5.20.0.tar.gz \ http://www.cpan.org/src/5.0/perl-5.20.0.tar.gz \
@ -40,15 +40,30 @@ ifneq ($(CONFIG_USE_EGLIBC),)
EXTRA_LIBS:=bsd EXTRA_LIBS:=bsd
EXTRA_LIBDIRS:=$(STAGING_DIR)/lib EXTRA_LIBDIRS:=$(STAGING_DIR)/lib
endif endif
# Filter -g3, it will break Compress-Raw-Zlib # Filter -g3, it will break Compress-Raw-Zlib
TARGET_CFLAGS_PERL:=$(patsubst -g3,-g,$(TARGET_CFLAGS)) TARGET_CFLAGS_PERL:=$(patsubst -g3,-g,$(TARGET_CFLAGS))
TARGET_CPPFLAGS_PERL:=$(patsubst -g3,-g,$(TARGET_CPPFLAGS)) TARGET_CPPFLAGS_PERL:=$(patsubst -g3,-g,$(TARGET_CPPFLAGS))
# A list of disabled testss # 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_EGLIBC
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 # ExtUtils tests are disabled for now as we don't support building
# native extensions on the target machine at the moment # native extensions on the target machine at the moment
PERL_DISABLEDTESTS:=cpan/ExtUtils-Constant cpan/ExtUtils-MakeMaker PERL_DISABLEDTESTS:=cpan/ExtUtils-Constant cpan/ExtUtils-MakeMaker
# We're on Linux, so don't even package those # We're on Linux, so don't even package them
PERL_DISABLEDTESTS+=cpan/Win32API-File cpan/Win32 ext/VMS-DCLsym ext/VMS-Filespec ext/VMS-Stdio ext/Win32CORE PERL_DISABLEDTESTS+=cpan/Win32API-File cpan/Win32 ext/VMS-DCLsym ext/VMS-Filespec ext/VMS-Stdio ext/Win32CORE
# NDBM and ODBM not supported # NDBM and ODBM not supported
PERL_DISABLEDTESTS+=ext/NDBM_File ext/ODBM_File PERL_DISABLEDTESTS+=ext/NDBM_File ext/ODBM_File
@ -64,7 +79,7 @@ define Package/perl
CATEGORY:=Languages CATEGORY:=Languages
TITLE:=The Perl intepreter TITLE:=The Perl intepreter
URL:=http://www.perl.com/ URL:=http://www.perl.com/
DEPENDS:=+USE_EGLIBC:libbsd DEPENDS:=+USE_EGLIBC:libbsd +PERL_THREADS:libpthread
endef endef
define Package/perl/description define Package/perl/description
@ -108,8 +123,10 @@ define Build/Configure
-e 's!%%EXTRA_PERLLIBDIRS%%!$(EXTRA_LIBDIRS:%=-L%)!g' \ -e 's!%%EXTRA_PERLLIBDIRS%%!$(EXTRA_LIBDIRS:%=-L%)!g' \
-e 's!%%IPV6%%!$(if $($(CONFIG_IPV6)),define,undef)!g' \ -e 's!%%IPV6%%!$(if $($(CONFIG_IPV6)),define,undef)!g' \
-e 's!%%HOSTMINIPERL%%!$(HOST_PERL_PREFIX)/bin/perl!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' \ -e 's!%%HOSTGENERATE%%!$(HOST_PERL_PREFIX)/bin/generate_uudmap!g' \
files/config.sh-$(patsubst i386,i486,$(ARCH)).in \ files/config.sh-$(patsubst i386,i486,$(ARCH))$(PERL_CONFIG_SUFFIX).in \
> $(PKG_BUILD_DIR)/config.sh > $(PKG_BUILD_DIR)/config.sh
(cd $(PKG_BUILD_DIR) && ./Configure -S) (cd $(PKG_BUILD_DIR) && ./Configure -S)
install -m 0644 $(PKG_BUILD_DIR)/config.h $(PKG_BUILD_DIR)/xconfig.h install -m 0644 $(PKG_BUILD_DIR)/config.h $(PKG_BUILD_DIR)/xconfig.h

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -562,7 +562,7 @@ $(eval $(call BuildPackage,perlbase-essential))
define Package/perlbase-experimental define Package/perlbase-experimental
$(call Package/perlbase-template) $(call Package/perlbase-template)
TITLE:=perl module to enable/disable experimental features TITLE:=experimental perl module
DEPENDS+=+perlbase-essential +perlbase-feature DEPENDS+=+perlbase-essential +perlbase-feature
endef endef