From patchwork Thu Dec 6 19:10:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Seiderer X-Patchwork-Id: 1008984 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.136; helo=silver.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=gmx.net Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 439lYH07kGz9s4s for ; Fri, 7 Dec 2018 06:10:26 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id ECBA12262E; Thu, 6 Dec 2018 19:10:23 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id DWrVEDLC54Mc; Thu, 6 Dec 2018 19:10:22 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by silver.osuosl.org (Postfix) with ESMTP id EE63522650; Thu, 6 Dec 2018 19:10:21 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id 5AE491BF333 for ; Thu, 6 Dec 2018 19:10:21 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 585F986113 for ; Thu, 6 Dec 2018 19:10:21 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id t3EbnvjURa8H for ; Thu, 6 Dec 2018 19:10:20 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) by fraxinus.osuosl.org (Postfix) with ESMTPS id 9ED2D85FD5 for ; Thu, 6 Dec 2018 19:10:19 +0000 (UTC) Received: from localhost.localdomain ([178.2.23.138]) by mail.gmx.com (mrgmx001 [212.227.17.190]) with ESMTPSA (Nemesis) id 0M0QAP-1hKTpX2nbZ-00uVa7; Thu, 06 Dec 2018 20:10:10 +0100 From: Peter Seiderer To: buildroot@buildroot.org Date: Thu, 6 Dec 2018 20:10:09 +0100 Message-Id: <20181206191009.3830-1-ps.report@gmx.net> X-Mailer: git-send-email 2.19.2 MIME-Version: 1.0 X-Provags-ID: V03:K1:lVARgRLTpWutMo+/i0+8fg5I/cjViqRm+vG5WjAsujzSepY0M1v J1QFAtVZT2Uv8QzovnULyOdNQJiafYBvc0rdWkxAPYy9CkswfF9QiOk/R7V6G3TtrI95dJX 3qngrV9dN5UzWUH8Y6PNOOWv7E++5Ec8Voq6QXkmaardKjyFQnPgeu7zFNp28MSzHVzCAJw /KXSDKcFSY7QofSXboeBA== X-UI-Out-Filterresults: notjunk:1; V03:K0:cH19NRzvEf8=:vrZKmKReGVULF+OtS+OM+m jCjpB04ctR6nEa2D7bbtNYw3HWCF4VOoDTnf2984UpDNxa2gBdK/Y9dr3YSa8z8vCL72D1uKs axzE+zMTTI3/z46pugEzgGCTMn5sHFTW+RLbHWJ3uwcw3thOAJW2XDSjvuW3AxlxoBnb/1HjP AQK3mMe8JH+fXdIsxqOFqA90KyrYCiz+nfMD4mykDtUpY0ZaYbnKQQi0WCWxrLy/HXSkp+XG+ DdL7UvhL9kz/Bv3nXTRT53Q6wxwqDC+pGfoimZI2vDAq/td4oIXOsPCj5DzcHplvHbOM8CVl1 XEt6P+nQbtXZLQ8RtzEoK+iPy4QDnip3EG7bAUNozKzkmBIAPZf9spVCRiacKVZNbLdqXUWwv qhVimJllCbN/JPcJlixR0XO9PXozZl87B3TGt5b+Qp7L7YPwjtTdsrmF20kPXKmShWheayxrt yJOFWvvSVMiWpYO2im36QcbOGGi6VJccphT/LKpo3UCCNmtYVaTSPSihXFkVzJLvcso2QTVW8 2WKfhM3fI3ORYVRDbQnGtAlV885FIhuQ7chGDae5irPONWCgqPeJ/2+BvfmUVVXlPNWPOiiHY k0emkLpU/9v6duyR8muhI4e/NUZ+XCvsroJB9tzQTMNE/DVFVsOF1GCmQcmxiKWwT0bRX+grd dwroB7i50yfKGm87q7fPpXMDUC8EiiPd4cbrCZPVM7tKgT661lMeTPeSjy+3jkN9eUfiiA9RY N9qk3CePCAJbnh5kDxb/I+uPN+jGlgfh4wO818/zm5rdSojOCHKf2KKYJn4vpvKbRZoARmr4R MdibDoC3o9Hly/1348QNd1S8yuflcfOgs/Ts33xU7ru3UsBd/CTWRTTIqeJStV9hplhWhIlZO N0wVkEbzqVCd0tvNbdApZuCtYEH5TTagsEtMw97rjcngmiPddSIXZKYdSzeo44 Subject: [Buildroot] [RFC v2] localedef: update to glibc-2.28 and various fixes X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Samuel Mendoza-Jonas , Joel Stanley , Thomas Petazzoni Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Follow up on original patch [1], various fixes and update according to the given comments: - update to glibc-2.28 - add ptxdist patch 0001-HACK-only-build-and-install-localedef.patch, needed for make target locale/others - use make target locale/others (like ptxdist does) - add 0002-HACK-accept-old-toolchains.patch, fix configure for old host toolchains - remove various target related options - remove stubs.h header creation - do not change '--prefix=/usr' to '--prefix=$(HOST_DIR)', otherwise leads to the following failure: Generating locale en_US.UTF-8 cannot create temporary file: .../target/home/seiderer/Buildroot-2018-11/build_2018_11_002/host/lib/locale/locale-archive.wXbLbC: No such file or directory Makefile:715: recipe for target 'target-finalize' failed make[1]: *** [target-finalize] Error 1 Makefile:23: recipe for target '_all' failed make: *** [_all] Error 2 - remove uselsess '$(eval $(autotools-package))' [1] https://patchwork.ozlabs.org/patch/950717/ Signed-off-by: Peter Seiderer Tested-by: Samuel Mendoza-Jonas --- Changes v1 -> v2: - remove patch duplicate 0001-accept-old-as.patch-001 - fix LOCALEDEF_SITE (GLIBC_VERSION vs. LOCALEDEF_VERSION) - update 0001-HACK-only-build-and-install-localedef.patch (add upstream url and signed-of-by) - update 0002-HACK-accept-old-toolchains.patch (convert to git patch, add signed-of-by) Notes: The following programs shows the failure with Buildroot-2018.11/glibc-2.28: #include #include #include int main(int argc, char *argv[]) { const char* set_locale = setlocale(LC_ALL, ""); printf("set_locale: %s\n", set_locale); int delta = strcoll("a", "A"); printf("strcoll(a, A): %d\n", delta); delta = strcoll("A", "a"); printf("strcoll(A, a): %d\n", delta); return 0; } $ ./test set_locale: C strcoll(a, A): 32 strcoll(A, a): -32 This one should give the same output as the one with LC_COLLATE=en_US.UTF-8, but failes to do so: $ LC_ALL=en_US.UTF-8 ./test set_locale: (null) strcoll(a, A): 32 strcoll(A, a): -32 $ LC_COLLATE=en_US.UTF-8 ./test set_locale: LC_CTYPE=C;LC_NUMERIC=C;LC_TIME=C;LC_COLLATE=en_US.UTF-8;LC_MONETARY=C;LC_MESSAGES=C;LC_PAPER=C;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=C;LC_IDENTIFICATION=C strcoll(a, A): -5 strcoll(A, a): 5 --- ...ACK-only-build-and-install-localedef.patch | 63 +++++++++++++++++++ .../0002-HACK-accept-old-toolchains.patch | 44 +++++++++++++ package/localedef/localedef.hash | 2 +- package/localedef/localedef.mk | 47 +++----------- 4 files changed, 116 insertions(+), 40 deletions(-) create mode 100644 package/localedef/0001-HACK-only-build-and-install-localedef.patch create mode 100644 package/localedef/0002-HACK-accept-old-toolchains.patch diff --git a/package/localedef/0001-HACK-only-build-and-install-localedef.patch b/package/localedef/0001-HACK-only-build-and-install-localedef.patch new file mode 100644 index 0000000000..8d5fefbb82 --- /dev/null +++ b/package/localedef/0001-HACK-only-build-and-install-localedef.patch @@ -0,0 +1,63 @@ +From 3a32e5840048ef7db7858ce324731be7a82ddf90 Mon Sep 17 00:00:00 2001 +From: Michael Olbrich +Date: Mon, 21 May 2018 16:45:02 +0200 +Subject: [PATCH] HACK: only build and install localedef + +Signed-off-by: Michael Olbrich + +Upstream: https://git.pengutronix.de/cgit/ptxdist/plain/patches/localedef-glibc-2.27/0001-HACK-only-build-and-install-localedef.patch?id=47116f66f411d4dadfce42c2fdd6d41b351ccfd4 +Signed-off-by: Peter Seiderer +--- + Rules | 14 ++++++++++---- + locale/Makefile | 6 +++--- + 2 files changed, 13 insertions(+), 7 deletions(-) + +diff --git a/Rules b/Rules +index 706c8a74..04f3f333 100644 +--- a/Rules ++++ b/Rules +@@ -188,10 +188,16 @@ binaries-shared-notests = $(filter-out $(binaries-pie) $(binaries-static), \ + $(binaries-all-notests)) + + ifneq "$(strip $(binaries-shared-notests))" "" +-$(addprefix $(objpfx),$(binaries-shared-notests)): %: %.o \ +- $(sort $(filter $(common-objpfx)lib%,$(link-libc))) \ +- $(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit) +- $(+link) ++$(addprefix $(objpfx),$(binaries-shared-notests)): %: %.o ++ $(CC) -o $@ \ ++ $(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \ ++ $(combreloc-LDFLAGS) $(relro-LDFLAGS) $(hashstyle-LDFLAGS) \ ++ $(filter-out $(addprefix $(csu-objpfx),start.o \ ++ $(start-installed-name))\ ++ $(+preinit) \ ++ $(link-extra-libs) \ ++ $(common-objpfx)libc% $(+postinit),$^) \ ++ $(link-extra-libs) + endif + + ifneq "$(strip $(binaries-shared-tests))" "" +diff --git a/locale/Makefile b/locale/Makefile +index fd997227..a8541593 100644 +--- a/locale/Makefile ++++ b/locale/Makefile +@@ -32,13 +32,13 @@ categories = ctype messages monetary numeric time paper name \ + address telephone measurement identification collate + aux = $(categories:%=lc-%) $(categories:%=C-%) SYS_libc C_name \ + xlocale localename global-locale coll-lookup +-others = localedef locale ++others = localedef + #others-static = localedef locale +-install-bin = localedef locale ++install-bin = localedef + extra-objs = $(localedef-modules:=.o) $(localedef-aux:=.o) \ + $(locale-modules:=.o) $(lib-modules:=.o) + +-extra-libs = libBrokenLocale ++#extra-libs = libBrokenLocale + extra-libs-others = $(extra-libs) + + libBrokenLocale-routines = broken_cur_max +-- +2.19.2 + diff --git a/package/localedef/0002-HACK-accept-old-toolchains.patch b/package/localedef/0002-HACK-accept-old-toolchains.patch new file mode 100644 index 0000000000..93305093ad --- /dev/null +++ b/package/localedef/0002-HACK-accept-old-toolchains.patch @@ -0,0 +1,44 @@ +From 3781bea6277974169cb64d676aad19d3ff358212 Mon Sep 17 00:00:00 2001 +From: Peter Seiderer +Date: Thu, 6 Dec 2018 19:10:24 +0100 +Subject: [PATCH] HACK: accept old toolchains + +Signed-off-by: Peter Seiderer +--- + configure | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/configure b/configure +index fde57d63..44082866 100755 +--- a/configure ++++ b/configure +@@ -4519,7 +4519,7 @@ $as_echo_n "checking version of $AS... " >&6; } + ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'` + case $ac_prog_version in + '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; +- 2.1[0-9][0-9]*|2.2[5-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*) ++ 2.1[0-9][0-9]*|2.2[4-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*) + ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; + *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; + +@@ -4649,7 +4649,7 @@ $as_echo_n "checking version of $LD... " >&6; } + ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU ld.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'` + case $ac_prog_version in + '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; +- 2.1[0-9][0-9]*|2.2[5-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*) ++ 2.1[0-9][0-9]*|2.2[4-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*) + ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; + *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; + +@@ -5058,7 +5058,7 @@ int + main () + { + +-#if !defined __GNUC__ || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 9) ++#if !defined __GNUC__ || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8) + #error insufficient compiler + #endif + ; +-- +2.19.2 + diff --git a/package/localedef/localedef.hash b/package/localedef/localedef.hash index 6f2d6313b6..cfc8e984fa 100644 --- a/package/localedef/localedef.hash +++ b/package/localedef/localedef.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 33189b3f10c88730a1f686fac794bc01f31765f12ffd75bc5e8a0f2a690d217a localedef-glibc-2.27-57-g6c99e37f6fb640a50a3113b2dbee5d5389843c1e.tar.gz +sha256 877c7b4741501d1762af8ef1a2518bdf2d722947d2e8d48b203e2d83cc600bca glibc-glibc-2.28.tar.gz diff --git a/package/localedef/localedef.mk b/package/localedef/localedef.mk index c93132cc3f..9928590b9e 100644 --- a/package/localedef/localedef.mk +++ b/package/localedef/localedef.mk @@ -5,47 +5,15 @@ ################################################################################ # Use the same VERSION and SITE as target glibc -LOCALEDEF_VERSION = glibc-2.27-57-g6c99e37f6fb640a50a3113b2dbee5d5389843c1e -LOCALEDEF_SITE = $(call github,bminor,glibc,$(GLIBC_VERSION)) +LOCALEDEF_VERSION = glibc-2.28 +LOCALEDEF_SOURCE = glibc-$(LOCALEDEF_VERSION).tar.gz +LOCALEDEF_SITE = $(call github,bminor,glibc,$(LOCALEDEF_VERSION)) HOST_LOCALEDEF_LICENSE = GPL-2.0+ (programs), LGPL-2.1+, BSD-3-Clause, MIT (library) HOST_LOCALEDEF_LICENSE_FILES = COPYING COPYING.LIB LICENSES -# glibc is part of the toolchain so disable the toolchain dependency -HOST_LOCALEDEF_ADD_TOOLCHAIN_DEPENDENCY = NO - HOST_LOCALEDEF_SUBDIR = build -# Thumb build is broken, build in ARM mode -ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB),y) -HOST_LOCALEDEF_EXTRA_CFLAGS += -marm -endif - -# MIPS64 defaults to n32 so pass the correct -mabi if -# we are using a different ABI. OABI32 is also used -# in MIPS so we pass -mabi=32 in this case as well -# even though it's not strictly necessary. -ifeq ($(BR2_MIPS_NABI64),y) -HOST_LOCALEDEF_EXTRA_CFLAGS += -mabi=64 -else ifeq ($(BR2_MIPS_OABI32),y) -HOST_LOCALEDEF_EXTRA_CFLAGS += -mabi=32 -endif - -ifeq ($(BR2_ENABLE_DEBUG),y) -HOST_LOCALEDEF_EXTRA_CFLAGS += -g -endif - -# The stubs.h header is not installed by install-headers, but is -# needed for the gcc build. An empty stubs.h will work, as explained -# in http://gcc.gnu.org/ml/gcc/2002-01/msg00900.html. The same trick -# is used by Crosstool-NG. -ifeq ($(BR2_TOOLCHAIN_BUILDROOT_HOST_LOCALEDEF),y) -define HOST_LOCALEDEF_ADD_MISSING_STUB_H - mkdir -p $(STAGING_DIR)/usr/include/gnu - touch $(STAGING_DIR)/usr/include/gnu/stubs.h -endef -endif - # Even though we use the autotools-package infrastructure, we have to # override the default configure commands for several reasons: # @@ -72,17 +40,18 @@ define HOST_LOCALEDEF_CONFIGURE_CMDS --host=$(GNU_HOST_NAME) \ --build=$(GNU_HOST_NAME) \ --prefix=/usr \ - $(if $(BR2_SOFT_FLOAT),--without-fp,--with-fp) \ - $(if $(BR2_x86_64),--enable-lock-elision) \ --with-pkgversion="Buildroot" \ --without-cvs \ --disable-profile \ --without-gd \ --enable-obsolete-rpc) - $(HOST_LOCALEDEF_ADD_MISSING_STUB_H) endef -$(eval $(autotools-package)) +define HOST_LOCALEDEF_BUILD_CMDS + $(HOST_MAKE_ENV) $(MAKE) $(HOST_LOCALEDEF_MAKE_OPTS) \ + -C $(@D)/build locale/others +endef + # The makefile does not implement an install target for localedef define HOST_LOCALEDEF_INSTALL_CMDS $(INSTALL) -D -m 0755 $(@D)/build/locale/localedef $(HOST_DIR)/bin/localedef