Message ID | 1393887187-29706-1-git-send-email-andrew.ruder@elecsyscorp.com |
---|---|
State | Changes Requested |
Headers | show |
>>>>> "Andrew" == Andrew Ruder <andrew.ruder@elecsyscorp.com> writes: Hi, > We carry a patch that turns off building compatibility layers for old/broken > versions of standard functions (strstr, strtoul, strtod) with the assumption > that anything buildroot is targetting with the standard C library will be good > enough. Thanks, see below for a few comments: > +++ b/package/tcl/tcl-0001-dont-build-compat.patch > @@ -0,0 +1,21 @@ > +diff --git a/unix/tcl.m4 b/unix/tcl.m4 Please add a git-style patch header explaining what the patch does and why + your signed-off-by. You can basically just copy your commit text above. > +++ b/package/tcl/tcl.mk > @@ -4,8 +4,8 @@ > # > ################################################################################ > -TCL_VERSION_MAJOR = 8.4 > -TCL_VERSION_MINOR = 19 > +TCL_VERSION_MAJOR = 8.6 > +TCL_VERSION_MINOR = 1 TCL_VERSION_MINOR has been removed in the mean time. > TCL_VERSION = $(TCL_VERSION_MAJOR).$(TCL_VERSION_MINOR) > TCL_SOURCE = tcl$(TCL_VERSION)-src.tar.gz > TCL_SITE = http://downloads.sourceforge.net/project/tcl/Tcl/$(TCL_VERSION) > @@ -13,6 +13,7 @@ TCL_LICENSE = tcl license > TCL_LICENSE_FILES = license.terms > TCL_SUBDIR = unix > TCL_INSTALL_STAGING = YES > +TCL_AUTORECONF = YES > TCL_CONF_OPT = \ > --disable-symbols \ > --disable-langinfo \ > @@ -42,12 +43,30 @@ endef > TCL_POST_INSTALL_TARGET_HOOKS += TCL_SYMLINK_TCLSH > endif > -# library get installed read only, so strip fails > -define TCL_FIXUP_RO_LIB > - chmod +w $(TARGET_DIR)/usr/lib/libtcl* > +ifneq ($(BR2_PACKAGE_SQLITE),y) > +define TCL_REMOVE_SQLITE > + rm -fr $(TARGET_DIR)/usr/lib/sqlite3.8.0 $(TARGET_DIR)/usr/lib/tdbcsqlite3-1.0.0 > endef > +TCL_POST_INSTALL_TARGET_HOOKS += TCL_REMOVE_SQLITE > +endif > + > +define TCL_REMOVE_EXTRA > + rm -fr $(TARGET_DIR)/usr/lib/tdbcmysql1.0.0 \ > + $(TARGET_DIR)/usr/lib/tdbcodbc1.0.0 \ > + $(TARGET_DIR)/usr/lib/tdbcpostgres1.0.0 \ > + $(TARGET_DIR)/usr/lib/tclConfig.sh \ > + $(TARGET_DIR)/usr/lib/tclooConfig.sh > +endef > +TCL_POST_INSTALL_TARGET_HOOKS += TCL_REMOVE_EXTRA > -TCL_POST_INSTALL_TARGET_HOOKS += TCL_FIXUP_RO_LIB > +ifneq ($(BR2_PACKAGE_SQLITE),y) > +define TCL_REMOVE_SQLITE > + rm -fr $(TARGET_DIR)/usr/lib/sqlite3.8.0 \ > + $(TARGET_DIR)/usr/lib/tdbcsqlite3-1.0.0 \ > + $(TARGET_DIR)/usr/lib/tdbc1.0.0 > +endef You seem to handle sqlite twice? Shouldn't sqlite atleast be added to TCL_DEPENDENCIES (and perhaps host-pkgconf if it is used) if it is enabled to ensure that the configure script picks it up? > +TCL_POST_INSTALL_TARGET_HOOKS += TCL_REMOVE_SQLITE > +endif > $(eval $(autotools-package)) > $(eval $(host-autotools-package)) > diff --git a/package/tcllib/tcllib.mk b/package/tcllib/tcllib.mk > index f2aca36..ae2e4da 100644 > --- a/package/tcllib/tcllib.mk > +++ b/package/tcllib/tcllib.mk > @@ -10,6 +10,6 @@ TCLLIB_SITE = http://downloads.sourceforge.net/project/tcllib/tcllib/$( > TCLLIB_LICENSE = tcl license > TCLLIB_LICENSE_FILES = license.terms > TCLLIB_DEPENDENCIES = host-tcl > -TCLLIB_CONF_ENV = ac_cv_path_tclsh="$(HOST_DIR)/usr/bin/tclsh8.4" > +TCLLIB_CONF_ENV = ac_cv_path_tclsh="$(HOST_DIR)/usr/bin/tclsh8.6" It would be good to use $(TCL_VERSION_MAJOR) here so we don't need to update it whenever the version is bumped. Care to fix these minor issues and resend? Thanks!
diff --git a/package/tcl/Config.in b/package/tcl/Config.in index 5dcf63d..3fe8ef5 100644 --- a/package/tcl/Config.in +++ b/package/tcl/Config.in @@ -8,21 +8,21 @@ config BR2_PACKAGE_TCL if BR2_PACKAGE_TCL config BR2_PACKAGE_TCL_DEL_ENCODINGS - bool "delete encodings (saves 1.4Mb)" + bool "delete encodings (saves 1.6Mb)" default y help Delete encoding files for TCL. If your programs do not use various tcl character recoding functions, you may safely choose Y here. - It saves approx. 1.4 Mb of space. + It saves approx. 1.6 Mb of space. config BR2_PACKAGE_TCL_SHLIB_ONLY bool "install only shared library" default y help Install only TCL shared library and not binary tcl - interpreter(tclsh8.4). + interpreter (tclsh). Saves ~14kb. diff --git a/package/tcl/tcl-0001-dont-build-compat.patch b/package/tcl/tcl-0001-dont-build-compat.patch new file mode 100644 index 0000000..b008737 --- /dev/null +++ b/package/tcl/tcl-0001-dont-build-compat.patch @@ -0,0 +1,21 @@ +diff --git a/unix/tcl.m4 b/unix/tcl.m4 +--- a/unix/tcl.m4 ++++ b/unix/tcl.m4 +@@ -2466,7 +2466,7 @@ AC_DEFUN([SC_BUGGY_STRTOD], [ + } + exit(0); + }], tcl_cv_strtod_buggy=ok, tcl_cv_strtod_buggy=buggy, +- tcl_cv_strtod_buggy=buggy)]) ++ tcl_cv_strtod_buggy=ok)]) + if test "$tcl_cv_strtod_buggy" = buggy; then + AC_LIBOBJ([fixstrtod]) + USE_COMPAT=1 +@@ -2725,7 +2725,7 @@ AC_DEFUN([SC_TCL_CHECK_BROKEN_FUNC],[ + if test ["$tcl_ok"] = 1; then + AC_CACHE_CHECK([proper ]$1[ implementation], [tcl_cv_]$1[_unbroken], + AC_TRY_RUN([[int main() {]$2[}]],[tcl_cv_]$1[_unbroken]=ok, +- [tcl_cv_]$1[_unbroken]=broken,[tcl_cv_]$1[_unbroken]=unknown)) ++ [tcl_cv_]$1[_unbroken]=broken,[tcl_cv_]$1[_unbroken]=ok)) + if test ["$tcl_cv_]$1[_unbroken"] = "ok"; then + tcl_ok=1 + else diff --git a/package/tcl/tcl-8.4.19-strtod.patch b/package/tcl/tcl-8.4.19-strtod.patch deleted file mode 100644 index a997454..0000000 --- a/package/tcl/tcl-8.4.19-strtod.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- tcl8.4.9/compat/strtod.c 2002-02-25 16:26:12.000000000 +0200 -+++ tcl8.4.9/compat/strtod.c 2005-05-30 08:55:18.000000000 +0300 -@@ -24,6 +24,8 @@ - #define NULL 0 - #endif - -+#undef strtod -+ - static int maxExponent = 511; /* Largest possible base 10 exponent. Any - * exponent larger than this will already - * produce underflow or overflow, so there's diff --git a/package/tcl/tcl.mk b/package/tcl/tcl.mk index 58f085a..9fbe8c5 100644 --- a/package/tcl/tcl.mk +++ b/package/tcl/tcl.mk @@ -4,8 +4,8 @@ # ################################################################################ -TCL_VERSION_MAJOR = 8.4 -TCL_VERSION_MINOR = 19 +TCL_VERSION_MAJOR = 8.6 +TCL_VERSION_MINOR = 1 TCL_VERSION = $(TCL_VERSION_MAJOR).$(TCL_VERSION_MINOR) TCL_SOURCE = tcl$(TCL_VERSION)-src.tar.gz TCL_SITE = http://downloads.sourceforge.net/project/tcl/Tcl/$(TCL_VERSION) @@ -13,6 +13,7 @@ TCL_LICENSE = tcl license TCL_LICENSE_FILES = license.terms TCL_SUBDIR = unix TCL_INSTALL_STAGING = YES +TCL_AUTORECONF = YES TCL_CONF_OPT = \ --disable-symbols \ --disable-langinfo \ @@ -42,12 +43,30 @@ endef TCL_POST_INSTALL_TARGET_HOOKS += TCL_SYMLINK_TCLSH endif -# library get installed read only, so strip fails -define TCL_FIXUP_RO_LIB - chmod +w $(TARGET_DIR)/usr/lib/libtcl* +ifneq ($(BR2_PACKAGE_SQLITE),y) +define TCL_REMOVE_SQLITE + rm -fr $(TARGET_DIR)/usr/lib/sqlite3.8.0 $(TARGET_DIR)/usr/lib/tdbcsqlite3-1.0.0 endef +TCL_POST_INSTALL_TARGET_HOOKS += TCL_REMOVE_SQLITE +endif + +define TCL_REMOVE_EXTRA + rm -fr $(TARGET_DIR)/usr/lib/tdbcmysql1.0.0 \ + $(TARGET_DIR)/usr/lib/tdbcodbc1.0.0 \ + $(TARGET_DIR)/usr/lib/tdbcpostgres1.0.0 \ + $(TARGET_DIR)/usr/lib/tclConfig.sh \ + $(TARGET_DIR)/usr/lib/tclooConfig.sh +endef +TCL_POST_INSTALL_TARGET_HOOKS += TCL_REMOVE_EXTRA -TCL_POST_INSTALL_TARGET_HOOKS += TCL_FIXUP_RO_LIB +ifneq ($(BR2_PACKAGE_SQLITE),y) +define TCL_REMOVE_SQLITE + rm -fr $(TARGET_DIR)/usr/lib/sqlite3.8.0 \ + $(TARGET_DIR)/usr/lib/tdbcsqlite3-1.0.0 \ + $(TARGET_DIR)/usr/lib/tdbc1.0.0 +endef +TCL_POST_INSTALL_TARGET_HOOKS += TCL_REMOVE_SQLITE +endif $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/package/tcllib/tcllib.mk b/package/tcllib/tcllib.mk index f2aca36..ae2e4da 100644 --- a/package/tcllib/tcllib.mk +++ b/package/tcllib/tcllib.mk @@ -10,6 +10,6 @@ TCLLIB_SITE = http://downloads.sourceforge.net/project/tcllib/tcllib/$( TCLLIB_LICENSE = tcl license TCLLIB_LICENSE_FILES = license.terms TCLLIB_DEPENDENCIES = host-tcl -TCLLIB_CONF_ENV = ac_cv_path_tclsh="$(HOST_DIR)/usr/bin/tclsh8.4" +TCLLIB_CONF_ENV = ac_cv_path_tclsh="$(HOST_DIR)/usr/bin/tclsh8.6" $(eval $(autotools-package))
We carry a patch that turns off building compatibility layers for old/broken versions of standard functions (strstr, strtoul, strtod) with the assumption that anything buildroot is targetting with the standard C library will be good enough. Signed-off-by: Andrew Ruder <andrew.ruder@elecsyscorp.com> --- package/tcl/Config.in | 6 +++--- package/tcl/tcl-0001-dont-build-compat.patch | 21 +++++++++++++++++++ package/tcl/tcl-8.4.19-strtod.patch | 11 ---------- package/tcl/tcl.mk | 31 ++++++++++++++++++++++------ package/tcllib/tcllib.mk | 2 +- 5 files changed, 50 insertions(+), 21 deletions(-) create mode 100644 package/tcl/tcl-0001-dont-build-compat.patch delete mode 100644 package/tcl/tcl-8.4.19-strtod.patch