Skip to contentSkip to conversation

toolchain: Add glibc support for ARCv2

PATCH New Evgeniy Didin 4 participants 6 messages Oct 10, 2017 – Oct 11, 2017

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 toolchain: Add glibc support for ARCv2

Finally there's working ARC port of glibc thanks to Vineet and Cuper! This port is based on pretty recent glibc's master branch and ARC changes are being reviewed now in glibc's mailing list.

Thus we again have to use sources from our GitHub but as soon as there's a glibc release with our patches applied we'll switch to upstream releases and will drop our glibc GitHub repo alltogether.

Note now we cut tags in glibc repo simultaneously with tags
in Binutils and GCC repos and so to make sure everything works in the best way we plan to update glibc tag together with Binutils and GCC.

Also note as of today ARCompact (AKA ARCv1 ISA) is not supported in glibc but we plan to fix it soonish so for now we make glibc intentionally dependent on archs38.

Also note we are not creating directory "2.26" because all patches for glibc ver 2.26 applies to arc glibc port.

CC Alexey Brodkin <[email protected]>
CC Thomas Petazzoni <[email protected]>
CC Waldemar Brodkorb <[email protected]>
CC Romain Naour <[email protected]>
Cc Cupertino Miranda <[email protected]>
Cc Vineet Gupta <[email protected]>
Cc Anton Kolesov <[email protected]>
---
 package/glibc/glibc.hash                | 3 +++
 package/glibc/glibc.mk                  | 8 +++++++-
 toolchain/toolchain-buildroot/Config.in | 2 +-
 3 files changed, 11 insertions(+), 2 deletions(-)
package/glibc/glibc.hash +3 -0
index afae10fa57..5458102a8a 100644
@@ -1,2 +1,5 @@
 # Locally calculated after checking pgp signature (glibc)
 sha256	e54e0a934cd2bc94429be79da5e9385898d2306b9eaf3c92d5a77af96190f6bd	glibc-2.26.tar.xz
+# Locally calculated (fetched from Github)
+sha256  adf2dd19a76705a6fb748492eba30cb0be621422190116382a891a3cf099e895     glibc-arc-2017.09-eng010.tar.gz
+
package/glibc/glibc.mk +7 -1
index f5d028239f..ea31847c51 100644
@@ -3,10 +3,16 @@
 # glibc
 #
 ################################################################################
-
+ifeq ($(BR2_arc),y)
+GLIBC_VERSION =  arc-2017.09-eng010
+GLIBC_SITE = $(call github,foss-for-synopsys-dwc-arc-processors,glibc,$(GLIBC_VERSION))
+GLIBC_SOURCE = glibc-$(GLIBC_VERSION).tar.gz
+else
 GLIBC_VERSION = 2.26
 GLIBC_SITE = $(BR2_GNU_MIRROR)/libc
 GLIBC_SOURCE = glibc-$(GLIBC_VERSION).tar.xz
+endif
+
 GLIBC_SRC_SUBDIR = .
 
 GLIBC_LICENSE = GPL-2.0+ (programs), LGPL-2.1+, BSD-3-Clause, MIT (library)
toolchain/toolchain-buildroot/Config.in +1 -1
index ac6017fd6e..25ab667927 100644
@@ -47,7 +47,7 @@ config BR2_TOOLCHAIN_BUILDROOT_GLIBC
 		   BR2_mipsel      || BR2_mips64     || BR2_mips64el|| \
 		   BR2_powerpc     || BR2_powerpc64  || BR2_powerpc64le || \
 		   BR2_sh          || BR2_sparc64    || BR2_x86_64 || \
-		   BR2_microblaze || BR2_nios2
+		   BR2_microblaze  || BR2_nios2      || BR2_archs38
 	depends on BR2_USE_MMU
 	depends on !BR2_STATIC_LIBS
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
Signature · 1 line
2.11.0
#1 lore raw

PATCH v2 1/1 toolchain: Add glibc support for ARCv2

Adding Arnout as he reviewed v1 earlier.

-Alexey

Quoted 79 lines · Evgeniy Didin

Finally there's working ARC port of glibc thanks to Vineet and Cuper! This port is based on pretty recent glibc's master branch and ARC changes are being reviewed now in glibc's mailing list.

Thus we again have to use sources from our GitHub but as soon as there's a glibc release with our patches applied we'll switch to upstream releases and will drop our glibc GitHub repo alltogether.

Note now we cut tags in glibc repo simultaneously with tags
in Binutils and GCC repos and so to make sure everything works in the best way we plan to update glibc tag together with Binutils and GCC.

Also note as of today ARCompact (AKA ARCv1 ISA) is not supported in glibc but we plan to fix it soonish so for now we make glibc intentionally dependent on archs38.

Also note we are not creating directory "2.26" because all patches for glibc ver 2.26 applies to arc glibc port.

CC Alexey Brodkin <[email protected]>
CC Thomas Petazzoni <[email protected]>
CC Waldemar Brodkorb <[email protected]>
CC Romain Naour <[email protected]>
Cc Cupertino Miranda <[email protected]>
Cc Vineet Gupta <[email protected]>
Cc Anton Kolesov <[email protected]>

---

?package/glibc/glibc.hash????????????????| 3 +++
?package/glibc/glibc.mk??????????????????| 8 +++++++-
?toolchain/toolchain-buildroot/Config.in | 2 +-

?3 files changed, 11 insertions(+), 2 deletions(-)

package/glibc/glibc.hash +0 -0
index afae10fa57..5458102a8a 100644
@@ -1,2 +1,5 @@
 ?# Locally calculated after checking pgp signature (glibc)

?sha256 e54e0a934cd2bc94429be79da5e9385898d2306b9eaf3c92d5a77af96190f6bd glibc-2.26.tar.xz

package/glibc/glibc.hash +3 -0
+# Locally calculated (fetched from Github)
+sha256??adf2dd19a76705a6fb748492eba30cb0be621422190116382a891a3cf099e895?????glibc-arc-2017.09-eng010.tar.gz
+
package/glibc/glibc.mk +0 -0
index f5d028239f..ea31847c51 100644
@@ -3,10 +3,16 @@

?# glibc
?# ?################################################################################

package/glibc/glibc.mk +5 -1
-
+ifeq ($(BR2_arc),y)
+GLIBC_VERSION =??arc-2017.09-eng010
+GLIBC_SITE = $(call github,foss-for-synopsys-dwc-arc-processors,glibc,$(GLIBC_VERSION))
+GLIBC_SOURCE = glibc-$(GLIBC_VERSION).tar.gz
+else

?GLIBC_VERSION = 2.26
?GLIBC_SITE = $(BR2_GNU_MIRROR)/libc
?GLIBC_SOURCE = glibc-$(GLIBC_VERSION).tar.xz

package/glibc/glibc.mk +2 -0
+endif
+

?GLIBC_SRC_SUBDIR = .
?
?GLIBC_LICENSE = GPL-2.0+ (programs), LGPL-2.1+, BSD-3-Clause, MIT (library)

toolchain/toolchain-buildroot/Config.in +1 -1
index ac6017fd6e..25ab667927 100644
@@ -47,7 +47,7 @@ config BR2_TOOLCHAIN_BUILDROOT_GLIBC
 ?		???BR2_mipsel??????|| BR2_mips64?????|| BR2_mips64el|| \
 ?		???BR2_powerpc?????|| BR2_powerpc64??|| BR2_powerpc64le || \
 ?		???BR2_sh??????????|| BR2_sparc64????|| BR2_x86_64 || \
-		???BR2_microblaze || BR2_nios2
+		???BR2_microblaze??|| BR2_nios2??????|| BR2_archs38

? depends on BR2_USE_MMU
? depends on !BR2_STATIC_LIBS
? depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2

#2 lore raw

PATCH v2 1/1 toolchain: Add glibc support for ARCv2

In reply to Evgeniy Didin

Hello,

Thanks, I've applied to master. One comment below.

Quoted 12 lines · Evgeniy Didin

Finally there's working ARC port of glibc thanks to Vineet and Cuper! This port is based on pretty recent glibc's master branch and ARC changes are being reviewed now in glibc's mailing list.

Thus we again have to use sources from our GitHub but as soon as there's a glibc release with our patches applied we'll switch to upstream releases and will drop our glibc GitHub repo alltogether.

Note now we cut tags in glibc repo simultaneously with tags
in Binutils and GCC repos and so to make sure everything works in the best way we plan to update glibc tag together with Binutils and GCC.

Quoted 6 lines

Also note as of today ARCompact (AKA ARCv1 ISA) is not supported in glibc but we plan to fix it soonish so for now we make glibc intentionally dependent on archs38.

Also note we are not creating directory "2.26" because all patches for glibc ver 2.26 applies to arc glibc port.

This last thing will probably cause problems in the future: when we will add new glibc patches, they may not work with the ARC version of glibc, or when we bump to glibc 2.26.1, the ARC version of glibc will probably not be rebased at exactly the same time.

So I've left it as-is for now, but I'm pretty sure we'll have to switch to per-version directories very soon.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#3 lore raw

PATCH v2 1/1 toolchain: Add glibc support for ARCv2

Quoted 1 line · Thomas Petazzoni

when we bump to glibc 2.26.1

Is there any hope of that? I thought the glibc maintainers had made it clear
that there wouldn't be point releases?

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#4 lore raw

PATCH v2 1/1 toolchain: Add glibc support for ARCv2

Hello,

Quoted 4 lines · Arnout Vandecappelle
Quoted 1 line

when we bump to glibc 2.26.1

Is there any hope of that? I thought the glibc maintainers had made it clear
that there wouldn't be point releases?

Yes, there has been a lot of discussion, pushed by Romain and Yann, and with the support from people of other distros, and apparently, the glibc maintainers have understood the need for dot releases with fixes.

That being said, my point stands: when we bump to 2.27, not sure the ARC folks will have bumped at exactly the same time.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#5 lore raw

PATCH v2 1/1 toolchain: Add glibc support for ARCv2

In reply to Thomas Petazzoni

Hi Thomas,

Quoted 9 lines

-----Original Message-----
From: Thomas Petazzoni [mailto:thomas.petazzoni at free-electrons.com]
Sent: Wednesday, October 11, 2017 12:18 AM
To: Evgeniy Didin <[email protected]>
Cc: buildroot at busybox.net; Cupertino Miranda <[email protected]>; Vineet Gupta <[email protected]>; Alexey Brodkin <[email protected]>; Anton Kolesov <[email protected]>; Romain Naour <[email protected]>
Subject: Re: [Buildroot] [PATCHv2] toolchain: Add glibc support for ARCv2

Quoted 3 lines

Hello,

Thanks, I've applied to master. One comment below.

Cool, thanks!
Do you want me to submit something like web/toolchains/configs/br-arc-full-internal-glibc.config or you're going to do it yourself?

Quoted 20 lines · Evgeniy Didin
Quoted 12 lines

Finally there's working ARC port of glibc thanks to Vineet and Cuper! This port is based on pretty recent glibc's master branch and ARC changes are being reviewed now in glibc's mailing list.

Thus we again have to use sources from our GitHub but as soon as there's a glibc release with our patches applied we'll switch to upstream releases and will drop our glibc GitHub repo alltogether.

Note now we cut tags in glibc repo simultaneously with tags
in Binutils and GCC repos and so to make sure everything works in the best way we plan to update glibc tag together with Binutils and GCC.

Quoted 6 lines

Also note as of today ARCompact (AKA ARCv1 ISA) is not supported in glibc but we plan to fix it soonish so for now we make glibc intentionally dependent on archs38.

Also note we are not creating directory "2.26" because all patches for glibc ver 2.26 applies to arc glibc port.

Quoted 7 lines

This last thing will probably cause problems in the future: when we will add new glibc patches, they may not work with the ARC version of glibc, or when we bump to glibc 2.26.1, the ARC version of glibc will probably not be rebased at exactly the same time.

So I've left it as-is for now, but I'm pretty sure we'll have to switch to per-version directories very soon.

That's understood and initially we planned to have a separate folder. But:
1) [Especially now] it makes no sense to have 2 folders with the same patches
2) We're going to update our glibc version to rc2 and final release in coming weeks and with the folder in place bump patches will be much bigger for nothing
3) There's a chance newer patches will just apply smoothly which might benefit ARC toolchain (if the patch in question fixes generic stuff).
4) In the worst case we'll create folders :)

-Alexey