Skip to contentSkip to conversation

RFC v2: provide 3.0.x and 3.1 libc headers

PATCH In review Bruce Ashfield 2 participants 4 messages Oct 26, 2011

lore
Share & tools
lore
#0 lore raw

cover RFC v2: provide 3.0.x and 3.1 libc headers

Richard,

Here's a quick respin of the series to factor out some code.

Changes since v1:

- factored common code out into the .inc file. Captured in patch 1/2
- patch 2/2 is the introduction of the new headers

Original Email is included below:

Here's a RFC patch for updating the toolchain linux-libc headers to 3.x variants.

The reason I'm calling it a RFC is:

- I wrote some anonymous python code (and I'm no python coder) to deal with 2.6 / 3.0 tgz location differences. This could have also been done with a variable set in the recipes and used by the .inc. I wasn't sure of the preferred approach, hence the RFC. I'll take no offense corrections here.

- I changed the .inc, but didn't bump the PR of the existing recipes and didn't remove the existing 2.6 variants. If either of these should have been done, let me know and I'll respin.

- I bumped the default to be 3.1. If that's too agressive for the default, and we'd prefer 3.0.8, let me know and I'll respin.

I built and booted all the qemu machines with the 3.1 kernel headers. So from the testing I was able to do, this looks to be safe and ready to go.

This is based on my yocto repo, I also did the changes in my oe-core repository, but I don't have a oe-core contrib branch that I could push to, so I chose to send the yocto variant. If someone points me to who I email for an oe-core contrib branch, I can push that variant as well.

Cheers,

Bruce

The following changes since commit fc94f925e848684244a38dcffe15cb1192dfbed8:
Martin Jansa (1):
libxml-parser-perl, libxml-simple-perl, expat, sgmlspl-native, git: bump PR to rebuild after perl upgrade

are available in the git repository at:

git://git.pokylinux.org/poky-contrib zedd/libc-headers-v2
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=zedd/libc-headers-v2

Bruce Ashfield (2):
linux-libc-headers: factor common code into linux-libc-headers.inc
linux-libc-headers: provide 3.0.x and 3.1 headers

 meta/conf/distro/include/tcmode-default.inc        |    2 +-
 .../linux-libc-headers/linux-libc-headers.inc      |   61 +++++++++++++++++++-
 .../linux-libc-headers_2.6.37.2.bb                 |   46 +--------------
 .../linux-libc-headers_2.6.39.bb                   |   47 +---------------
 .../linux-libc-headers/linux-libc-headers_3.0.8.bb |    9 +++
 .../linux-libc-headers/linux-libc-headers_3.1.bb   |    9 +++
 6 files changed, 79 insertions(+), 95 deletions(-)
 create mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers_3.0.8.bb
 create mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers_3.1.bb
#1 lore raw

PATCH 1/2 linux-libc-headers: factor common code into linux-libc-headers.inc

Each time a new linux-libc-headers is created the same code is cloned. Placing the common functionality in the .inc file simplies each recipe and make maintenance easier.

---
 .../linux-libc-headers/linux-libc-headers.inc      |   44 ++++++++++++++++++
 .../linux-libc-headers_2.6.37.2.bb                 |   46 +-------------------
 .../linux-libc-headers_2.6.39.bb                   |   47 +-------------------
 3 files changed, 46 insertions(+), 91 deletions(-)
meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc +44 -0
index 014024f..e83a92b 100644
@@ -5,6 +5,50 @@ LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" 
 SRC_URI = "${KERNELORG_MIRROR}/linux/kernel/v2.6/linux-${PV}.tar.bz2"
 
+S = "${WORKDIR}/linux-${PV}"
+
+set_arch() {
+	case ${TARGET_ARCH} in
+		alpha*)   ARCH=alpha ;;
+		arm*)     ARCH=arm ;;
+		cris*)    ARCH=cris ;;
+		hppa*)    ARCH=parisc ;;
+		i*86*)    ARCH=i386 ;;
+		ia64*)    ARCH=ia64 ;;
+		mips*)    ARCH=mips ;;
+		m68k*)    ARCH=m68k ;;
+		powerpc*) ARCH=powerpc ;;
+		s390*)    ARCH=s390 ;;
+		sh*)      ARCH=sh ;;
+		sparc64*) ARCH=sparc64 ;;
+		sparc*)   ARCH=sparc ;;
+		x86_64*)  ARCH=x86_64 ;;
+		avr32*)   ARCH=avr32 ;;
+		bfin*)    ARCH=blackfin ;;
+		microblaze*) ARCH=microblaze ;;
+	esac
+}
+
+do_configure() {
+	set_arch
+	oe_runmake allnoconfig ARCH=$ARCH
+}
+
+do_compile () {
+}
+
+do_install() {
+	set_arch
+	oe_runmake headers_install INSTALL_HDR_PATH=${D}${exec_prefix} ARCH=$ARCH
+	# Kernel should not be exporting this header
+	rm -f ${D}${exec_prefix}/include/scsi/scsi.h
+
+	# The ..install.cmd conflicts between various configure runs
+	find ${D}${includedir} -name ..install.cmd | xargs rm -f
+}
+
+BBCLASSEXTEND = "nativesdk"
+
 #DEPENDS = "cross-linkage"
 RDEPENDS_${PN}-dev = ""
 RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
meta/recipes-kernel/linux-libc-headers/linux-libc-headers_2.6.37.2.bb +1 -45

53 lines not on this page · raw message

meta/recipes-kernel/linux-libc-headers/linux-libc-headers_2.6.39.bb +1 -46

54 lines not on this page · raw message

Signature · 1 line
1.7.0.4
#2 lore raw

PATCH 2/2 linux-libc-headers: provide 3.0.x and 3.1 headers

In reply to Bruce Ashfield

Provide both a 3.0.x and a 3.1 set of headers to the toolchain. Compatibility is maintained with older 2.6 headers by creating a new variable that changes the SRC_URI based on the major version number of the kernel.

Built and booted with 2.6.37.2, 3.0.8 and 3.1 linux-libc-headers.

---
 meta/conf/distro/include/tcmode-default.inc        |    2 +-
 .../linux-libc-headers/linux-libc-headers.inc      |   17 ++++++++++++++---
 .../linux-libc-headers/linux-libc-headers_3.0.8.bb |    9 +++++++++
 .../linux-libc-headers/linux-libc-headers_3.1.bb   |    9 +++++++++
 4 files changed, 33 insertions(+), 4 deletions(-)
 create mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers_3.0.8.bb
 create mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers_3.1.bb
meta/conf/distro/include/tcmode-default.inc +1 -1
index 2bf1beb..ed722be 100644
@@ -21,7 +21,7 @@ SDKGCCVERSION ?= "4.6%"
 BINUVERSION ?= "2.21.1a"
 EGLIBCVERSION ?= "2.13"
 UCLIBCVERSION ?= "0.9.32"
-LINUXLIBCVERSION ?= "2.6.37.2"
+LINUXLIBCVERSION ?= "3.1"
 
 # Temporary preferred version overrides for PPC
 PREFERRED_VERSION_u-boot-mkimage-native_powerpc ?= "2009.08"
meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc +14 -3
index e83a92b..5fcb181 100644
@@ -1,9 +1,20 @@
-DESCRIPTION = "Sanitized set of 2.6 kernel headers for the C library's use."
+DESCRIPTION = "Sanitized set of kernel headers for the C library's use."
 SECTION = "devel"
 LICENSE = "GPLv2"
 
-LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" 
-SRC_URI = "${KERNELORG_MIRROR}/linux/kernel/v2.6/linux-${PV}.tar.bz2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
+
+python __anonymous () {
+    import bb, re, string
+
+    major = bb.data.getVar("PV",d,1).split('.')[0]
+    if major == "3":
+	bb.data.setVar("HEADER_FETCH_VER", "3.0", d)
+    else:
+	bb.data.setVar("HEADER_FETCH_VER", "2.6", d)
+}
+
+SRC_URI = "${KERNELORG_MIRROR}/linux/kernel/v${HEADER_FETCH_VER}/linux-${PV}.tar.bz2"
 
 S = "${WORKDIR}/linux-${PV}"
 
meta/recipes-kernel/linux-libc-headers/linux-libc-headers_3.0.8.bb new file +9 -0
new file mode 100644
index 0000000..e3bad82
@@ -0,0 +1,9 @@
+require linux-libc-headers.inc
+
+INHIBIT_DEFAULT_DEPS = "1"
+DEPENDS += "unifdef-native"
+PR = "r1"
+
+SRC_URI += " file://connector-msg-size-fix.patch"
+SRC_URI[md5sum] = "eac4d398a0ecd98214487cd47a228998"
+SRC_URI[sha256sum] = "4ed16da319848f681f711dbda2ac2cf1b306a280ec22f90bae190cf23b533add"
meta/recipes-kernel/linux-libc-headers/linux-libc-headers_3.1.bb new file +9 -0
new file mode 100644
index 0000000..72b6d4a
@@ -0,0 +1,9 @@
+require linux-libc-headers.inc
+
+INHIBIT_DEFAULT_DEPS = "1"
+DEPENDS += "unifdef-native"
+PR = "r1"
+
+SRC_URI += " file://connector-msg-size-fix.patch"
+SRC_URI[md5sum] = "8d43453f8159b2332ad410b19d86a931"
+SRC_URI[sha256sum] = "2573d2378c754b0c602b57586e9311e5b38c5d1e6c137f02873833633a4b9359"
Signature · 1 line
1.7.0.4
#3 lore raw

Re: [PATCH 2/2] linux-libc-headers: provide 3.0.x and 3.1 headers

Quoted 64 lines · Bruce Ashfield

Provide both a 3.0.x and a 3.1 set of headers to the toolchain. Compatibility is maintained with older 2.6 headers by creating a new variable that changes the SRC_URI based on the major version number of the kernel.

Built and booted with 2.6.37.2, 3.0.8 and 3.1 linux-libc-headers.

---
 meta/conf/distro/include/tcmode-default.inc        |    2 +-
 .../linux-libc-headers/linux-libc-headers.inc      |   17 ++++++++++++++---
 .../linux-libc-headers/linux-libc-headers_3.0.8.bb |    9 +++++++++
 .../linux-libc-headers/linux-libc-headers_3.1.bb   |    9 +++++++++
 4 files changed, 33 insertions(+), 4 deletions(-)
 create mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers_3.0.8.bb
 create mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers_3.1.bb
meta/conf/distro/include/tcmode-default.inc +1 -1
index 2bf1beb..ed722be 100644
@@ -21,7 +21,7 @@ SDKGCCVERSION ?= "4.6%"
 BINUVERSION ?= "2.21.1a"
 EGLIBCVERSION ?= "2.13"
 UCLIBCVERSION ?= "0.9.32"
-LINUXLIBCVERSION ?= "2.6.37.2"
+LINUXLIBCVERSION ?= "3.1"
 
 # Temporary preferred version overrides for PPC
 PREFERRED_VERSION_u-boot-mkimage-native_powerpc ?= "2009.08"
meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc +14 -3
index e83a92b..5fcb181 100644
@@ -1,9 +1,20 @@
-DESCRIPTION = "Sanitized set of 2.6 kernel headers for the C library's use."
+DESCRIPTION = "Sanitized set of kernel headers for the C library's use."
 SECTION = "devel"
 LICENSE = "GPLv2"
 
-LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" 
-SRC_URI = "${KERNELORG_MIRROR}/linux/kernel/v2.6/linux-${PV}.tar.bz2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
+
+python __anonymous () {
+    import bb, re, string
+
+    major = bb.data.getVar("PV",d,1).split('.')[0]
+    if major == "3":
+	bb.data.setVar("HEADER_FETCH_VER", "3.0", d)
+    else:
+	bb.data.setVar("HEADER_FETCH_VER", "2.6", d)
+}
+
+SRC_URI = "${KERNELORG_MIRROR}/linux/kernel/v${HEADER_FETCH_VER}/linux-${PV}.tar.bz2"
 
 S = "${WORKDIR}/linux-${PV}"
 
meta/recipes-kernel/linux-libc-headers/linux-libc-headers_3.0.8.bb new file +0 -0
new file mode 100644
index 0000000..e3bad82

meta/recipes-kernel/linux-libc-headers/linux-libc-headers_3.0.8.bb line 4

Quoted 4 lines
meta/recipes-kernel/linux-libc-headers/linux-libc-headers_3.0.8.bb new file +4 -0
@@ -0,0 +1,9 @@
+require linux-libc-headers.inc
+
+INHIBIT_DEFAULT_DEPS = "1"
+DEPENDS += "unifdef-native"

I think the above two lines can go into the common .inc file too at this point :)

Cheers,

Richard