diff options
Diffstat (limited to 'meta/recipes-devtools/tcltk')
10 files changed, 281 insertions, 315 deletions
diff --git a/meta/recipes-devtools/tcltk/tcl/alter-includedir.patch b/meta/recipes-devtools/tcltk/tcl/alter-includedir.patch index c8530e1f58..bfc718cfd3 100644 --- a/meta/recipes-devtools/tcltk/tcl/alter-includedir.patch +++ b/meta/recipes-devtools/tcltk/tcl/alter-includedir.patch @@ -1,4 +1,9 @@ -Lets install the include header and private header files into +From 3130dca60636dc12d0d12df75b002fd123349e21 Mon Sep 17 00:00:00 2001 +From: Mingli Yu <mingli.yu@windriver.com> +Date: Tue, 22 Nov 2022 18:48:27 +0800 +Subject: [PATCH] tcl: update the header location + +Lets install the include header and private header files into usr/include/tcl8.6 when version of tcl is 8.6.x Upstream-Status: Inappropriate [Configuration Specific] @@ -7,19 +12,25 @@ Signed-off-by: Khem Raj <raj.khem@gmai.com> Fixed the TCL_INCLUDE_SPEC +Also update the header location in tcl.pc to correct the header +location in case some package such python3 which use pkg-config +to detect tcl doesn't find the header. + Signed-off-by: Robert Yang <liezhi.yang@windriver.com> +Signed-off-by: Yi Zhao <yi.zhao@windriver.com> +Signed-off-by: Mingli Yu <mingli.yu@windriver.com> --- - Makefile.in | 2 +- - configure | 4 ++-- - configure.in | 4 ++-- - 3 files changed, 5 insertions(+), 5 deletions(-) + unix/Makefile.in | 2 +- + unix/configure.in | 4 ++-- + unix/tcl.pc.in | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) -diff --git a/Makefile.in b/Makefile.in -index 97b983b..dc2a4df 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -53,7 +53,7 @@ DLL_INSTALL_DIR = @DLL_INSTALL_DIR@ - SCRIPT_INSTALL_DIR = $(INSTALL_ROOT)$(TCL_LIBRARY) +diff --git a/unix/Makefile.in b/unix/Makefile.in +index a3b7d69..969ddb8 100644 +--- a/unix/Makefile.in ++++ b/unix/Makefile.in +@@ -57,7 +57,7 @@ SCRIPT_INSTALL_DIR = $(INSTALL_ROOT)$(TCL_LIBRARY) + MODULE_INSTALL_DIR = $(SCRIPT_INSTALL_DIR)/../tcl8 # Directory in which to install the include file tcl.h: -INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(includedir) @@ -27,20 +38,20 @@ index 97b983b..dc2a4df 100644 # Path to the private tcl header dir: PRIVATE_INCLUDE_DIR = @PRIVATE_INCLUDE_DIR@ -diff --git a/configure b/configure -index 3e78b49..24b3f92 100755 ---- a/configure -+++ b/configure -@@ -19134,7 +19134,7 @@ eval "TCL_LIB_FILE=libtcl${LIB_SUFFIX}" +diff --git a/unix/configure.in b/unix/configure.in +index 4974fb6..a72934f 100644 +--- a/unix/configure.in ++++ b/unix/configure.in +@@ -776,7 +776,7 @@ eval "TCL_LIB_FILE=libtcl${LIB_SUFFIX}" eval "TCL_LIB_FILE=${TCL_LIB_FILE}" - TCL_LIBRARY='$(libdir)/tcl$(VERSION)' + test -z "$TCL_LIBRARY" && TCL_LIBRARY='$(libdir)/tcl$(VERSION)' -PRIVATE_INCLUDE_DIR='$(includedir)' +PRIVATE_INCLUDE_DIR='$(includedir)/tcl$(VERSION)' HTML_DIR='$(DISTDIR)/html' # Note: in the following variable, it's important to use the absolute -@@ -19293,7 +19293,7 @@ TCL_BUILD_STUB_LIB_PATH="`pwd`/${TCL_STUB_LIB_FILE}" +@@ -897,7 +897,7 @@ TCL_BUILD_STUB_LIB_PATH="`pwd`/${TCL_STUB_LIB_FILE}" TCL_STUB_LIB_PATH="${TCL_STUB_LIB_DIR}/${TCL_STUB_LIB_FILE}" # Install time header dir can be set via --includedir @@ -49,28 +60,16 @@ index 3e78b49..24b3f92 100755 #------------------------------------------------------------------------ # tclConfig.sh refers to this by a different name -diff --git a/configure.in b/configure.in -index 0e28b14..62d9b41 100755 ---- a/configure.in -+++ b/configure.in -@@ -791,7 +791,7 @@ eval "TCL_LIB_FILE=libtcl${LIB_SUFFIX}" - eval "TCL_LIB_FILE=${TCL_LIB_FILE}" +diff --git a/unix/tcl.pc.in b/unix/tcl.pc.in +index 93b5e69..dcd51d7 100644 +--- a/unix/tcl.pc.in ++++ b/unix/tcl.pc.in +@@ -3,7 +3,7 @@ + prefix=@prefix@ + exec_prefix=@exec_prefix@ + libdir=@libdir@ +-includedir=@includedir@ ++includedir=@includedir@/tcl@PACKAGE_VERSION@ + libfile=@TCL_LIB_FILE@ - TCL_LIBRARY='$(libdir)/tcl$(VERSION)' --PRIVATE_INCLUDE_DIR='$(includedir)' -+PRIVATE_INCLUDE_DIR='$(includedir)/tcl$(VERSION)' - HTML_DIR='$(DISTDIR)/html' - - # Note: in the following variable, it's important to use the absolute -@@ -912,7 +912,7 @@ TCL_BUILD_STUB_LIB_PATH="`pwd`/${TCL_STUB_LIB_FILE}" - TCL_STUB_LIB_PATH="${TCL_STUB_LIB_DIR}/${TCL_STUB_LIB_FILE}" - - # Install time header dir can be set via --includedir --eval "TCL_INCLUDE_SPEC=\"-I${includedir}\"" -+eval "TCL_INCLUDE_SPEC=\"-I${includedir}/tcl${VERSION}\"" - - #------------------------------------------------------------------------ - # tclConfig.sh refers to this by a different name --- -1.7.10.4 - + Name: Tool Command Language diff --git a/meta/recipes-devtools/tcltk/tcl/fix_issue_with_old_distro_glibc.patch b/meta/recipes-devtools/tcltk/tcl/fix_issue_with_old_distro_glibc.patch deleted file mode 100644 index 72a0fa4520..0000000000 --- a/meta/recipes-devtools/tcltk/tcl/fix_issue_with_old_distro_glibc.patch +++ /dev/null @@ -1,39 +0,0 @@ -Upstream-Status: Inappropriate [embedded specific] - -Fixes tcl target recipe build on old distros which have glibc older than 2.14 - -| + echo 'NOTE: make DESTDIR=/srv/home/nitin/builds/build-gcc47/tmp/work/x86_64-poky-linux/tcl-8.5.11-r5/image install' -| NOTE: make DESTDIR=/srv/home/nitin/builds/build-gcc47/tmp/work/x86_64-poky-linux/tcl-8.5.11-r5/image install -| + make DESTDIR=/srv/home/nitin/builds/build-gcc47/tmp/work/x86_64-poky-linux/tcl-8.5.11-r5/image install -| Making directory /srv/home/nitin/builds/build-gcc47/tmp/work/x86_64-poky-linux/tcl-8.5.11-r5/image/usr/lib -| Installing message catalogs -| Making directory /srv/home/nitin/builds/build-gcc47/tmp/work/x86_64-poky-linux/tcl-8.5.11-r5/image/usr/share/man -| tclsh: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /srv/home/nitin/builds/build-gcc47/tmp/work/x86_64-poky-linux/tcl-8.5.11-r5/tcl8.5.11/unix/libtcl8.5.so) -| Making directory /srv/home/nitin/builds/build-gcc47/tmp/work/x86_64-poky-linux/tcl-8.5.11-r5/image/usr/bin -| make: *** [install-msgs] Error 1 - -Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com> -2012/04/26 - -Index: unix/Makefile.in -=================================================================== ---- unix.orig/Makefile.in 2013-11-10 23:38:01.787425628 -0800 -+++ unix/Makefile.in 2013-11-10 23:37:59.807425578 -0800 -@@ -686,7 +686,7 @@ - # tcltest executable gets the build directory burned into its ld search path. - # This keeps tcltest from picking up an already installed version of the Tcl - # library. --SHELL_ENV = @LD_LIBRARY_PATH_VAR@=`pwd`:${@LD_LIBRARY_PATH_VAR@} \ -+SHELL_ENV = @LD_LIBRARY_PATH_VAR@=${@LD_LIBRARY_PATH_VAR@} \ - TCLLIBPATH="@abs_builddir@/pkgs" \ - TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}" - -@@ -712,7 +712,7 @@ - $(SHELL_ENV) ${TCLTEST_EXE} $(TOP_DIR)/tests/all.tcl $(TESTFLAGS) - - gdb-test: ${TCLTEST_EXE} -- @echo "set env @LD_LIBRARY_PATH_VAR@=`pwd`:$${@LD_LIBRARY_PATH_VAR@}" > gdb.run -+ @echo "set env @LD_LIBRARY_PATH_VAR@=$${@LD_LIBRARY_PATH_VAR@}" > gdb.run - @echo "set env TCL_LIBRARY=${TCL_BUILDTIME_LIBRARY}" >> gdb.run - @echo "set args $(TOP_DIR)/tests/all.tcl $(TESTFLAGS) -singleproc 1" >> gdb.run - $(GDB) ${TCLTEST_EXE} --command=gdb.run diff --git a/meta/recipes-devtools/tcltk/tcl/fix_non_native_build_issue.patch b/meta/recipes-devtools/tcltk/tcl/fix_non_native_build_issue.patch index c60eb75379..09c49daa2c 100644 --- a/meta/recipes-devtools/tcltk/tcl/fix_non_native_build_issue.patch +++ b/meta/recipes-devtools/tcltk/tcl/fix_non_native_build_issue.patch @@ -1,10 +1,18 @@ -Upstream-Status: Pending +From 371aa300369e9ea3234cba22d5c0babc7d40dfdf Mon Sep 17 00:00:00 2001 +From: Nitin A Kamble <nitin.a.kamble@intel.com> +Date: Fri, 13 Aug 2010 12:24:00 -0700 +Subject: [PATCH] tcl: fix a build issue -Index: unix/Makefile.in -=================================================================== ---- unix.orig/Makefile.in 2013-11-10 23:37:34.243424934 -0800 -+++ unix/Makefile.in 2013-11-10 23:37:34.243424934 -0800 -@@ -709,23 +709,23 @@ +Upstream-Status: Inappropriate [upstream does not support installed tests] +--- + unix/Makefile.in | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +diff --git a/unix/Makefile.in b/unix/Makefile.in +index 9dd053d..a3b7d69 100644 +--- a/unix/Makefile.in ++++ b/unix/Makefile.in +@@ -815,7 +815,7 @@ tcltest-real: test: test-tcl test-packages test-tcl: ${TCLTEST_EXE} @@ -12,9 +20,11 @@ Index: unix/Makefile.in + $(SHELL_ENV) ${TCLTEST_EXE} $(TOP_DIR)/tests/all.tcl $(TESTFLAGS) gdb-test: ${TCLTEST_EXE} - @echo "set env @LD_LIBRARY_PATH_VAR@=`pwd`:$${@LD_LIBRARY_PATH_VAR@}" > gdb.run - @echo "set env TCL_LIBRARY=${TCL_BUILDTIME_LIBRARY}" >> gdb.run - @echo "set args $(TOP_DIR)/tests/all.tcl $(TESTFLAGS) -singleproc 1" >> gdb.run + @printf '%s ' set env @LD_LIBRARY_PATH_VAR@=\"`pwd`$${@LD_LIBRARY_PATH_VAR@:+:$${@LD_LIBRARY_PATH_VAR}}\" > gdb.run +@@ -824,17 +824,17 @@ gdb-test: ${TCLTEST_EXE} + @printf '\n' >>gdb.run + @printf '%s ' set args $(call shquotequote,$(TOP_DIR))/tests/all.tcl\ + $(call shquotequote,$(TESTFLAGS)) -singleproc 1 >> gdb.run - $(GDB) ./${TCLTEST_EXE} --command=gdb.run + $(GDB) ${TCLTEST_EXE} --command=gdb.run rm gdb.run @@ -32,7 +42,7 @@ Index: unix/Makefile.in # The following target generates the shared libraries in dltest/ that are used # for testing; they are included as part of the "tcltest" target (via the -@@ -743,23 +743,23 @@ +@@ -852,28 +852,28 @@ dltest.marker: ${STUB_LIB_FILE} # This target can be used to run tclsh from the build directory # via `make shell SCRIPT=/tmp/foo.tcl` shell: ${TCL_EXE} @@ -44,9 +54,14 @@ Index: unix/Makefile.in - $(SHELL_ENV) $(GDB) ./${TCL_EXE} + $(SHELL_ENV) $(GDB) ${TCL_EXE} + lldb: ${TCL_EXE} + $(SHELL_ENV) $(LLDB) ./${TCL_EXE} + valgrind: ${TCL_EXE} ${TCLTEST_EXE} -- $(SHELL_ENV) $(VALGRIND) $(VALGRINDARGS) ./${TCLTEST_EXE} $(TOP_DIR)/tests/all.tcl -singleproc 1 -constraints valgrind $(TESTFLAGS) -+ $(SHELL_ENV) $(VALGRIND) $(VALGRINDARGS) ${TCLTEST_EXE} $(TOP_DIR)/tests/all.tcl -singleproc 1 -constraints valgrind $(TESTFLAGS) +- $(SHELL_ENV) $(VALGRIND) $(VALGRINDARGS) ./${TCLTEST_EXE} \ ++ $(SHELL_ENV) $(VALGRIND) $(VALGRINDARGS) ${TCLTEST_EXE} \ + $(TOP_DIR)/tests/all.tcl -singleproc 1 -constraints valgrind \ + $(TESTFLAGS) valgrindshell: ${TCL_EXE} - $(SHELL_ENV) $(VALGRIND) $(VALGRINDARGS) ./${TCL_EXE} $(SCRIPT) diff --git a/meta/recipes-devtools/tcltk/tcl/interp.patch b/meta/recipes-devtools/tcltk/tcl/interp.patch new file mode 100644 index 0000000000..2e0dc94cff --- /dev/null +++ b/meta/recipes-devtools/tcltk/tcl/interp.patch @@ -0,0 +1,40 @@ +From 426aa2ff62dda77fd011e8f630b9d4ea17984817 Mon Sep 17 00:00:00 2001 +From: Ross Burton <ross.burton@arm.com> +Date: Mon, 12 Jul 2021 14:50:13 +0100 +Subject: [PATCH] tcl: fix race in interp.test + +The interp-36.7 patch has race conditions and is missing cleanup. This patch by +a Tcl maintainer should improve matters. + +Upstream-Status: Pending +Signed-off-by: Ross Burton <ross.burton@arm.com> +--- + tests/interp.test | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/tests/interp.test b/tests/interp.test +index d742484..fc90990 100644 +--- a/tests/interp.test ++++ b/tests/interp.test +@@ -3595,17 +3595,18 @@ test interp-36.7 {ChildBgerror sets error handler of child [1999035]} -setup { + variable result + set result [lindex $args 0] + } ++ set tout [after 5000 {set result timeout}] + } -body { + child eval { + variable done {} + after 0 error foo +- after 10 [list ::set [namespace which -variable done] {}] +- vwait [namespace which -variable done] + } ++ vwait result + set result + } -cleanup { ++ after cancel $tout + variable result {} +- unset -nocomplain result ++ unset -nocomplain result tout + interp delete child + } -result foo + diff --git a/meta/recipes-devtools/tcltk/tcl/no_packages.patch b/meta/recipes-devtools/tcltk/tcl/no_packages.patch deleted file mode 100644 index 5c622a2369..0000000000 --- a/meta/recipes-devtools/tcltk/tcl/no_packages.patch +++ /dev/null @@ -1,53 +0,0 @@ -tcl 8.6.0 builds by default a number of packages that are not needed in Yocto. -This patch changes the makefile so that these packages are not built by default. - -Upstream-Status:Inappropriate [embedded specific] - -Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com> - -diff --git a/Makefile.in b/Makefile.in -index b729ffd..2c2e824 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -612,7 +612,7 @@ SRCS = $(GENERIC_SRCS) $(TOMMATH_SRCS) $(UNIX_SRCS) $(NOTIFY_SRCS) \ - # Start of rules - #-------------------------------------------------------------------------- - --all: binaries libraries doc packages -+all: binaries libraries doc - - binaries: ${LIB_FILE} ${TCL_EXE} - -@@ -656,12 +656,12 @@ Makefile: $(UNIX_DIR)/Makefile.in $(DLTEST_DIR)/Makefile.in - #tclConfig.h: $(UNIX_DIR)/tclConfig.h.in - # $(SHELL) config.status - --clean: clean-packages -+clean: - rm -rf *.a *.o libtcl* core errs *~ \#* TAGS *.E a.out \ - errors ${TCL_EXE} ${TCLTEST_EXE} lib.exp Tcl @DTRACE_HDR@ - cd dltest ; $(MAKE) clean - --distclean: distclean-packages clean -+distclean: clean - rm -rf Makefile config.status config.cache config.log tclConfig.sh \ - tclConfig.h *.plist Tcl.framework tcl.pc - cd dltest ; $(MAKE) distclean -@@ -709,7 +709,7 @@ tcltest-real: - # tcltest, ie: - # % make test TESTFLAGS="-verbose bps -file fileName.test" - --test: test-tcl test-packages -+test: test-tcl - - test-tcl: ${TCLTEST_EXE} - $(SHELL_ENV) ${TCLTEST_EXE} $(TOP_DIR)/tests/all.tcl $(TESTFLAGS) -@@ -774,7 +774,7 @@ INSTALL_PACKAGE_TARGETS = install-packages - INSTALL_DEV_TARGETS = install-headers - INSTALL_EXTRA_TARGETS = @EXTRA_INSTALL@ - INSTALL_TARGETS = $(INSTALL_BASE_TARGETS) $(INSTALL_DOC_TARGETS) $(INSTALL_DEV_TARGETS) \ -- $(INSTALL_PACKAGE_TARGETS) $(INSTALL_EXTRA_TARGETS) -+ $(INSTALL_EXTRA_TARGETS) - - install: $(INSTALL_TARGETS) - diff --git a/meta/recipes-devtools/tcltk/tcl/run-ptest b/meta/recipes-devtools/tcltk/tcl/run-ptest index 22bb69ae0d..a403a74bb6 100644 --- a/meta/recipes-devtools/tcltk/tcl/run-ptest +++ b/meta/recipes-devtools/tcltk/tcl/run-ptest @@ -1,13 +1,29 @@ #!/bin/sh -for i in `ls tests/*.test | awk -F/ '{print $2}'`; do - TCL_LIBRARY=library ./tcltest tests/all.tcl -file $i >$i.log 2>&1 - grep -q "^Files with failing tests:" $i.log +# clock.test needs a timezone to be set +export TZ="Europe/London" +export TCL_LIBRARY=library +export ERROR_ON_FAILURES=1 + +# Some tests are overly strict with timings and fail on loaded systems. +SKIP="" +# 15321 +SKIP="$SKIP async-\* event-\*" +# 14882 +SKIP="$SKIP cmdMZ-6.6" +# 15081 +SKIP="$SKIP exit-1.\*" +# 15407 15421 +SKIP="$SKIP \*io-46.1" +# 14825 +SKIP="$SKIP socket-\* socket_inet-\*" + +for i in tests/*.test; do + i=$(basename $i) + ./tcltest tests/all.tcl -file $i -skip "$SKIP" if [ $? -eq 0 ]; then - echo "FAIL: $i" - cat $i.log - else echo "PASS: $i" + else + echo "FAIL: $i" fi - rm -f $i.log done diff --git a/meta/recipes-devtools/tcltk/tcl/tcl-add-soname.patch b/meta/recipes-devtools/tcltk/tcl/tcl-add-soname.patch index d1fc9b92e5..a0195e263c 100644 --- a/meta/recipes-devtools/tcltk/tcl/tcl-add-soname.patch +++ b/meta/recipes-devtools/tcltk/tcl/tcl-add-soname.patch @@ -1,39 +1,20 @@ +From b89fd73daf9b3eb2f889f65baba5f90d8a930c82 Mon Sep 17 00:00:00 2001 +From: Richard Purdie <rpurdie@linux.intel.com> +Date: Wed, 9 Dec 2009 23:59:44 +0000 +Subject: [PATCH] tcl: Add tcltk from OE.dev but with legacy staging function + Upstream-Status: Pending +--- + unix/Makefile.in | 5 ++++- + unix/tcl.m4 | 3 +++ + 2 files changed, 7 insertions(+), 1 deletion(-) -Index: unix/configure -=================================================================== ---- unix.orig/configure 2013-09-19 13:17:13.000000000 -0700 -+++ unix/configure 2013-11-11 00:20:51.519490342 -0800 -@@ -7599,6 +7599,9 @@ - # get rid of the warnings. - #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES" - -+ # following line added by CW for Debian GNU/Linux -+ TCL_SHLIB_LD_EXTRAS="-Wl,-soname,\${TCL_LIB_FILE}.0" -+ - SHLIB_LD='${CC} ${CFLAGS} ${LDFLAGS} -shared' - DL_OBJS="tclLoadDl.o" - DL_LIBS="-ldl" -Index: unix/tcl.m4 -=================================================================== ---- unix.orig/tcl.m4 2013-09-19 13:17:13.000000000 -0700 -+++ unix/tcl.m4 2013-11-11 00:17:24.263485123 -0800 -@@ -1415,6 +1415,9 @@ - # get rid of the warnings. - #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES" - -+ # following line added by CW for Debian GNU/Linux -+ TCL_SHLIB_LD_EXTRAS="-Wl,-soname,\${TCL_LIB_FILE}.0" -+ - SHLIB_LD='${CC} ${CFLAGS} ${LDFLAGS} -shared' - DL_OBJS="tclLoadDl.o" - DL_LIBS="-ldl" -Index: unix/Makefile.in -=================================================================== ---- unix.orig/Makefile.in 2013-09-19 13:17:13.000000000 -0700 -+++ unix/Makefile.in 2013-11-11 00:20:32.423489861 -0800 -@@ -796,7 +796,10 @@ - done; +diff --git a/unix/Makefile.in b/unix/Makefile.in +index 7619afc..9dd053d 100644 +--- a/unix/Makefile.in ++++ b/unix/Makefile.in +@@ -904,7 +904,10 @@ install-binaries: binaries + done @echo "Installing $(LIB_FILE) to $(DLL_INSTALL_DIR)/" @@INSTALL_LIB@ - @chmod 555 "$(DLL_INSTALL_DIR)/$(LIB_FILE)" @@ -44,3 +25,17 @@ Index: unix/Makefile.in @echo "Installing ${TCL_EXE} as $(BIN_INSTALL_DIR)/tclsh$(VERSION)${EXE_SUFFIX}" @$(INSTALL_PROGRAM) ${TCL_EXE} "$(BIN_INSTALL_DIR)/tclsh$(VERSION)${EXE_SUFFIX}" @echo "Installing tclConfig.sh to $(CONFIG_INSTALL_DIR)/" +diff --git a/unix/tcl.m4 b/unix/tcl.m4 +index 0307a06..37c4d67 100644 +--- a/unix/tcl.m4 ++++ b/unix/tcl.m4 +@@ -1378,6 +1378,9 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ + # get rid of the warnings. + #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES" + ++ # following line added by CW for Debian GNU/Linux ++ TCL_SHLIB_LD_EXTRAS="-Wl,-soname,\${TCL_LIB_FILE}.0" ++ + SHLIB_LD='${CC} ${CFLAGS} ${LDFLAGS} -shared' + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" diff --git a/meta/recipes-devtools/tcltk/tcl/tcl-remove-hardcoded-install-path.patch b/meta/recipes-devtools/tcltk/tcl/tcl-remove-hardcoded-install-path.patch index 16f7c80516..93e7877256 100644 --- a/meta/recipes-devtools/tcltk/tcl/tcl-remove-hardcoded-install-path.patch +++ b/meta/recipes-devtools/tcltk/tcl/tcl-remove-hardcoded-install-path.patch @@ -1,4 +1,4 @@ -From 6efc98774681795712073c2b91e5e9d1763239b8 Mon Sep 17 00:00:00 2001 +From 050fc597fbfa4da2c31bd0df58c871892a490470 Mon Sep 17 00:00:00 2001 From: "Song.Li" <Song.Li@windriver.com> Date: Wed, 1 Aug 2012 19:05:51 +0800 Subject: [PATCH] tcl:install tcl to lib64 instead of lib on 64bit target @@ -7,41 +7,25 @@ Remove hardcoded library install path. Change $(prefix)/lib/ to ${libdir}. [YOCTO #2876] -This is not a bug, but libraries should be installed into directory .../lib/. -On 64bit target that should be lib64/. - -Upstream-Status: Inappropriate [configuration] +Upstream-Status: Pending Signed-off-by: Song.Li <Song.Li@windriver.com> Signed-off-by: Kai Kang <kai.kang@windriver.com> - +Signed-off-by: Yi Zhao <yi.zhao@windriver.com> --- - configure | 2 +- + unix/configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -Index: unix/configure -=================================================================== ---- unix.orig/configure 2013-11-10 23:38:33.643426430 -0800 -+++ unix/configure 2013-11-10 23:39:51.347428387 -0800 -@@ -19134,7 +19134,7 @@ - - eval "TCL_LIB_FILE=${TCL_LIB_FILE}" - --TCL_LIBRARY='$(prefix)/lib/tcl$(VERSION)' -+TCL_LIBRARY='$(libdir)/tcl$(VERSION)' - PRIVATE_INCLUDE_DIR='$(includedir)' - HTML_DIR='$(DISTDIR)/html' - -Index: unix/configure.in -=================================================================== ---- unix.orig/configure.in 2013-11-10 23:20:50.000000000 -0800 -+++ unix/configure.in 2013-11-10 23:39:41.199428131 -0800 -@@ -790,7 +790,7 @@ +diff --git a/unix/configure.in b/unix/configure.in +index 4f62510..4974fb6 100644 +--- a/unix/configure.in ++++ b/unix/configure.in +@@ -775,7 +775,7 @@ eval "TCL_LIB_FILE=libtcl${LIB_SUFFIX}" eval "TCL_LIB_FILE=${TCL_LIB_FILE}" --TCL_LIBRARY='$(prefix)/lib/tcl$(VERSION)' -+TCL_LIBRARY='$(libdir)/tcl$(VERSION)' +-test -z "$TCL_LIBRARY" && TCL_LIBRARY='$(prefix)/lib/tcl$(VERSION)' ++test -z "$TCL_LIBRARY" && TCL_LIBRARY='$(libdir)/tcl$(VERSION)' PRIVATE_INCLUDE_DIR='$(includedir)' HTML_DIR='$(DISTDIR)/html' diff --git a/meta/recipes-devtools/tcltk/tcl_8.6.14.bb b/meta/recipes-devtools/tcltk/tcl_8.6.14.bb new file mode 100644 index 0000000000..de4f5b878f --- /dev/null +++ b/meta/recipes-devtools/tcltk/tcl_8.6.14.bb @@ -0,0 +1,110 @@ +SUMMARY = "Tool Command Language" +HOMEPAGE = "http://tcl.sourceforge.net" +DESCRIPTION = "Tool Command Language, is an open-source multi-purpose C library which includes a powerful dynamic scripting language. Together they provide ideal cross-platform development environment for any programming project." +SECTION = "devel/tcltk" + +# http://www.tcl.tk/software/tcltk/license.html +LICENSE = "TCL & BSD-3-Clause" +LIC_FILES_CHKSUM = "file://license.terms;md5=058f6229798281bbcac4239c788cfa38 \ + file://compat/license.terms;md5=058f6229798281bbcac4239c788cfa38 \ + file://library/license.terms;md5=058f6229798281bbcac4239c788cfa38 \ + file://macosx/license.terms;md5=058f6229798281bbcac4239c788cfa38 \ + file://tests/license.terms;md5=058f6229798281bbcac4239c788cfa38 \ + file://win/license.terms;md5=058f6229798281bbcac4239c788cfa38 \ +" + +DEPENDS = "tcl-native zlib" + +BASE_SRC_URI = "${SOURCEFORGE_MIRROR}/tcl/tcl-core${PV}-src.tar.gz \ + file://tcl-add-soname.patch" +SRC_URI = "${BASE_SRC_URI} \ + file://fix_non_native_build_issue.patch \ + file://tcl-remove-hardcoded-install-path.patch \ + file://alter-includedir.patch \ + file://interp.patch \ + file://run-ptest \ + " +SRC_URI[sha256sum] = "ff604f43862a778827d7ecd1ad7686950ac2ef48d9cf69d3424cea9de08d9a72" + +SRC_URI:class-native = "${BASE_SRC_URI}" + +UPSTREAM_CHECK_URI = "https://www.tcl.tk/software/tcltk/download.html" +UPSTREAM_CHECK_REGEX = "tcl(?P<pver>\d+(\.\d+)+)-src" + +S = "${WORKDIR}/${BPN}${PV}" + +VER = "${PV}" + +inherit autotools ptest binconfig + +AUTOTOOLS_SCRIPT_PATH = "${S}/unix" +EXTRA_OECONF = "--enable-threads --disable-rpath --enable-man-suffix" + +# Prevent installing copy of tzdata based on tzdata installation on the build host +# It doesn't install tzdata if one of the following files exist on the host: +# /usr/share/zoneinfo/UTC /usr/share/zoneinfo/GMT /usr/share/lib/zoneinfo/UTC /usr/share/lib/zoneinfo/GMT /usr/lib/zoneinfo/UTC /usr/lib/zoneinfo/GMT +# otherwise "/usr/lib/tcl8.6/tzdata" is included in tcl package +EXTRA_OECONF += "--with-tzdata=no" + +do_install() { + autotools_do_install + oe_runmake 'DESTDIR=${D}' install-private-headers + ln -sf ./tclsh${VER} ${D}${bindir}/tclsh + ln -sf tclsh8.6 ${D}${bindir}/tclsh${VER} + sed -i "s;-L${B};-L${STAGING_LIBDIR};g" tclConfig.sh + sed -i "s;'${WORKDIR};'${STAGING_INCDIR};g" tclConfig.sh + install -d ${D}${bindir_crossscripts} + install -m 0755 tclConfig.sh ${D}${bindir_crossscripts} + install -m 0755 tclConfig.sh ${D}${libdir} + for dir in compat generic unix; do + install -d ${D}${includedir}/${BPN}${VER}/$dir + install -m 0644 ${S}/$dir/*.h ${D}${includedir}/${BPN}${VER}/$dir/ + done +} + +SYSROOT_DIRS += "${bindir_crossscripts}" + +PACKAGES =+ "tcl-lib" +FILES:tcl-lib = "${libdir}/libtcl8.6.so.*" +FILES:${PN} += "${libdir}/tcl${VER} ${libdir}/tcl8.6 ${libdir}/tcl8" +FILES:${PN}-dev += "${libdir}/tclConfig.sh ${libdir}/tclooConfig.sh" + +# isn't getting picked up by shlibs code +RDEPENDS:${PN} += "tcl-lib" +RDEPENDS:${PN}-ptest += "libgcc" + +BBCLASSEXTEND = "native nativesdk" + +do_compile_ptest() { + oe_runmake tcltest +} + +do_install_ptest() { + cp ${B}/tcltest ${D}${PTEST_PATH} + cp -r ${S}/library ${D}${PTEST_PATH} + cp -r ${S}/tests ${D}${PTEST_PATH} +} + +do_install_ptest:append:libc-musl () { + # Assumes locales other than provided by musl-locales + sed -i '/SKIP="$SKIP socket.*$/a # unixInit-3* is suppressed due to hardcoded locale assumptions\nSKIP="$SKIP unixInit-3\\\*"' ${D}${PTEST_PATH}/run-ptest +} + +# Fix some paths that might be used by Tcl extensions +BINCONFIG_GLOB = "*Config.sh" + +# Fix the path in sstate +SSTATE_SCAN_FILES += "*Config.sh" + +# Cleanup host path from ${libdir}/tclConfig.sh and remove the +# ${bindir_crossscripts}/tclConfig.sh from target +PACKAGE_PREPROCESS_FUNCS += "tcl_package_preprocess" +tcl_package_preprocess() { + sed -i -e "s;${DEBUG_PREFIX_MAP};;g" \ + -e "s;-L${STAGING_LIBDIR};-L${libdir};g" \ + -e "s;${STAGING_INCDIR};${includedir};g" \ + -e "s;--sysroot=${RECIPE_SYSROOT};;g" \ + ${PKGD}${libdir}/tclConfig.sh + + rm -f ${PKGD}${bindir_crossscripts}/tclConfig.sh +} diff --git a/meta/recipes-devtools/tcltk/tcl_8.6.9.bb b/meta/recipes-devtools/tcltk/tcl_8.6.9.bb deleted file mode 100644 index 7f3778153a..0000000000 --- a/meta/recipes-devtools/tcltk/tcl_8.6.9.bb +++ /dev/null @@ -1,101 +0,0 @@ -SUMMARY = "Tool Command Language" -HOMEPAGE = "http://tcl.sourceforge.net" -SECTION = "devel/tcltk" - -# http://www.tcl.tk/software/tcltk/license.html -LICENSE = "tcl & BSD-3-Clause" -LIC_FILES_CHKSUM = "file://../license.terms;md5=058f6229798281bbcac4239c788cfa38 \ - file://../compat/license.terms;md5=058f6229798281bbcac4239c788cfa38 \ - file://../library/license.terms;md5=058f6229798281bbcac4239c788cfa38 \ - file://../macosx/license.terms;md5=058f6229798281bbcac4239c788cfa38 \ - file://../tests/license.terms;md5=058f6229798281bbcac4239c788cfa38 \ - file://../win/license.terms;md5=058f6229798281bbcac4239c788cfa38 \ -" - -DEPENDS = "tcl-native zlib" - -BASE_SRC_URI = "${SOURCEFORGE_MIRROR}/tcl/${BPN}${PV}-src.tar.gz \ - file://tcl-add-soname.patch" -SRC_URI = "${BASE_SRC_URI} \ - file://fix_non_native_build_issue.patch \ - file://fix_issue_with_old_distro_glibc.patch \ - file://no_packages.patch \ - file://tcl-remove-hardcoded-install-path.patch \ - file://alter-includedir.patch \ - file://run-ptest \ -" -SRC_URI[md5sum] = "aa0a121d95a0e7b73a036f26028538d4" -SRC_URI[sha256sum] = "ad0cd2de2c87b9ba8086b43957a0de3eb2eb565c7159d5f53ccbba3feb915f4e" - -SRC_URI_class-native = "${BASE_SRC_URI}" - -S = "${WORKDIR}/${BPN}${PV}/unix" - -VER = "${PV}" - -inherit autotools ptest binconfig - -EXTRA_OECONF = "--enable-threads --disable-rpath --libdir=${libdir}" - -do_compile_prepend() { - echo > ${S}/../compat/fixstrtod.c -} - -do_install() { - autotools_do_install - oe_runmake 'DESTDIR=${D}' install-private-headers - ln -sf ./tclsh${VER} ${D}${bindir}/tclsh - ln -sf tclsh8.6 ${D}${bindir}/tclsh${VER} - sed -i "s;-L${B};-L${STAGING_LIBDIR};g" tclConfig.sh - sed -i "s;'${WORKDIR};'${STAGING_INCDIR};g" tclConfig.sh - install -d ${D}${bindir_crossscripts} - install -m 0755 tclConfig.sh ${D}${bindir_crossscripts} - install -m 0755 tclConfig.sh ${D}${libdir} - for dir in compat generic unix; do - install -d ${D}${includedir}/${BPN}${VER}/$dir - install -m 0644 ${S}/../$dir/*.h ${D}${includedir}/${BPN}${VER}/$dir/ - done -} - -SYSROOT_DIRS += "${bindir_crossscripts}" - -PACKAGES =+ "tcl-lib" -FILES_tcl-lib = "${libdir}/libtcl8.6.so.*" -FILES_${PN} += "${libdir}/tcl${VER} ${libdir}/tcl8.6 ${libdir}/tcl8" -FILES_${PN}-dev += "${libdir}/tclConfig.sh ${libdir}/tclooConfig.sh" - -# isn't getting picked up by shlibs code -RDEPENDS_${PN} += "tcl-lib" -RDEPENDS_${PN}_class-native = "" -RDEPENDS_${PN}-ptest += "libgcc" - -BBCLASSEXTEND = "native nativesdk" - -do_compile_ptest() { - oe_runmake tcltest -} - -do_install_ptest() { - cp ${B}/tcltest ${D}${PTEST_PATH} - cp -r ${S}/../library ${D}${PTEST_PATH} - cp -r ${S}/../tests ${D}${PTEST_PATH} -} - -# Fix some paths that might be used by Tcl extensions -BINCONFIG_GLOB = "*Config.sh" - -# Fix the path in sstate -SSTATE_SCAN_FILES += "*Config.sh" - -# Cleanup host path from ${libdir}/tclConfig.sh and remove the -# ${bindir_crossscripts}/tclConfig.sh from target -PACKAGE_PREPROCESS_FUNCS += "tcl_package_preprocess" -tcl_package_preprocess() { - sed -i -e "s;${DEBUG_PREFIX_MAP};;g" \ - -e "s;-L${STAGING_LIBDIR};-L${libdir};g" \ - -e "s;${STAGING_INCDIR};${includedir};g" \ - -e "s;--sysroot=${RECIPE_SYSROOT};;g" \ - ${PKGD}${libdir}/tclConfig.sh - - rm -f ${PKGD}${bindir_crossscripts}/tclConfig.sh -} |