Skip to contentSkip to conversation

siteinfo.bbclass re-merge

PATCH In review Tom Rini 3 participants 9 messages Jul 13, 2011 – Jul 20, 2011

lore
Share & tools
lore

Tom Rini

author
#0 lore raw

cover siteinfo.bbclass re-merge

Hey all,

This is the second of two pull requests. This doesn't depend on the first request, it's just splitting changes up. There's three changes here. First, site/ix86-common was setting the wrong value for unsigned int. Second, change perl to use SITEINFO variables rather than functions. Third, bring in the various changes in siteinfo.bbclass that have been in oe.dev. This last part will, I hope, also make dealing with multilib-specific siteinfo stuff easier (also alternative ABIs like x32).

My next step is to work on merging and verifying as much as possible the site files in oe-core and oe.dev.

The following changes since commit e66c2999afa2b3efbce8bb46c89f9db5e15f35c7:
Saul Wold (1):
libx11: ensure nativesdk uses correct DEPENDS and XCB flags

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib trini/update-siteinfo
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=trini/update-siteinfo

Tom Rini (3):
site/ix86-common: Fix ac_cv_sizeof_unsigned_char definition
perl: Use SITEINFO variables not functions siteinfo.bbclass: Port over oe.dev logic for site files

 meta/classes/autotools.bbclass             |    2 +-
 meta/classes/siteinfo.bbclass              |  202 +++++++++++++---------------
 meta/classes/toolchain-scripts.bbclass     |    2 +-
 meta/recipes-core/meta/meta-environment.bb |    2 +-
 meta/recipes-core/meta/meta-toolchain.bb   |    2 +-
 meta/recipes-devtools/perl/perl_5.12.3.bb  |    4 +-
 meta/site/ix86-common                      |    2 +-
 7 files changed, 103 insertions(+), 113 deletions(-)
 create mode 100644 meta/site/common-linux
author
#1 lore raw

PATCH 1/3 site/ix86-common: Fix ac_cv_sizeof_unsigned_char definition

It's very not right to set this to +ac_cv_sizeof_unsigned_int=1.

---
 meta/site/ix86-common |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
meta/site/ix86-common +1 -1
index 4a4442a..ae5680a 100644
@@ -1,5 +1,5 @@
 ac_cv_sizeof_char=${ac_cv_sizeof_char=1}
-ac_cv_sizeof_unsigned_char=${ac_cv_sizeof_unsigned_int=1}
+ac_cv_sizeof_unsigned_char=${ac_cv_sizeof_unsigned_char=1}
 ac_cv_sizeof_char_p=${ac_cv_sizeof_char_p=4}
 ac_cv_sizeof_unsigned_char_p=${ac_cv_sizeof_unsigned_char_p=4}
 ac_cv_sizeof_int=${ac_cv_sizeof_int=4}
Signature · 1 line
1.7.0.4
author
#2 lore raw

PATCH 2/3 perl: Use SITEINFO variables not functions

Switch from SITEINFO_BITS / SITEINFO_ENDIANESS rather than siteinfo_get...

---
 meta/recipes-devtools/perl/perl_5.12.3.bb |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
meta/recipes-devtools/perl/perl_5.12.3.bb +2 -2
index beb1791..105bbcc 100644
@@ -116,8 +116,8 @@ do_configure() {
         # Generate configuration
         rm -f config.sh-${TARGET_ARCH}-${TARGET_OS}
         for i in ${WORKDIR}/config.sh \
-                 ${WORKDIR}/config.sh-${@siteinfo_get_bits(d)} \
-                 ${WORKDIR}/config.sh-${@siteinfo_get_bits(d)}-${@siteinfo_get_endianess(d)}; do
+                 ${WORKDIR}/config.sh-${SITEINFO_BITS} \
+                 ${WORKDIR}/config.sh-${SITEINFO_BITS}-${SITEINFO_ENDIANESS}; do
             cat $i >> config.sh-${TARGET_ARCH}-${TARGET_OS}
         done
 
Signature · 1 line
1.7.0.4
author
#3 lore raw

PATCH 3/3 siteinfo.bbclass: Port over oe.dev logic for site files

In reply to Tom Rini

In oe.dev we have a sets to pick out hostos/hostarch/etc site files out of and include things like a common-linux site file. This should also help out with adding multilib-specific site files (ie x32). This requires a smallish change to autotools.bbclass to find the files now and changes to toolchain-scripts.bbclass, meta-toolchain.bb and meta-environment.bb to deal with how CONFIG_SITE is now.

---
 meta/classes/autotools.bbclass             |    2 +-
 meta/classes/siteinfo.bbclass              |  202 +++++++++++++---------------
 meta/classes/toolchain-scripts.bbclass     |    2 +-
 meta/recipes-core/meta/meta-environment.bb |    2 +-
 meta/recipes-core/meta/meta-toolchain.bb   |    2 +-
 5 files changed, 100 insertions(+), 110 deletions(-)
 create mode 100644 meta/site/common-linux
meta/classes/autotools.bbclass +1 -1
index 98c871a..5e8799a 100644
@@ -26,7 +26,7 @@ inherit siteinfo
 
 # Space separated list of shell scripts with variables defined to supply test
 # results for autoconf tests we cannot run at build time.
-export CONFIG_SITE = "${@siteinfo_get_files(d)}"
+export CONFIG_SITE = "${@' '.join(siteinfo_get_files(d))}"
 
 acpaths = "default"
 EXTRA_AUTORECONF = "--exclude=autopoint"
meta/classes/siteinfo.bbclass +96 -106

217 lines not on this page · raw message

meta/classes/toolchain-scripts.bbclass +1 -1
index 3301319..751a47e 100644
@@ -42,7 +42,7 @@ toolchain_create_tree_env_script () {
 	echo 'export PKG_CONFIG_SYSROOT_DIR=${PKG_CONFIG_SYSROOT_DIR}' >> $script
 	echo 'export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}' >> $script
 
-	echo 'export CONFIG_SITE="${@siteinfo_get_files(d)}"' >> $script
+	echo 'export CONFIG_SITE="${CONFIG_SITE}"' >> $script
 
 	echo 'export CC=${TARGET_PREFIX}gcc' >> $script
 	echo 'export CXX=${TARGET_PREFIX}g++' >> $script
meta/recipes-core/meta/meta-environment.bb +1 -1
index 351cbf0..865dd00 100644
@@ -8,7 +8,7 @@ EXCLUDE_FROM_WORLD = "1"
 
 inherit toolchain-scripts
 # get target config site before inheritting cross-canadian
-TARGET_CONFIG_SITE := "${@siteinfo_get_files(d)}"
+TARGET_CONFIG_SITE := "${@' '.join(siteinfo_get_files(d))}"
 
 SDK_DIR = "${WORKDIR}/sdk"
 SDK_OUTPUT = "${SDK_DIR}/image"
meta/recipes-core/meta/meta-toolchain.bb +1 -1
index ab98bf9..3abba42 100644
@@ -9,4 +9,4 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3
 IMAGETEST ?= "dummy"
 inherit populate_sdk imagetest-${IMAGETEST}
 
-CONFIG_SITE := "${@siteinfo_get_files(d)}"
+CONFIG_SITE := "${@' '.join(siteinfo_get_files(d))}"
meta/site/common-linux new file +0 -0
new file mode 100644
index 0000000..e69de29
Signature · 1 line
1.7.0.4
#4 lore raw

Re: [PATCH 3/3] siteinfo.bbclass: Port over oe.dev logic for site files

Hi Tom,

I had a chance to look at this in more detail now, I just have a couple of things to look at...

Quoted 23 lines · Tom Rini

In oe.dev we have a sets to pick out hostos/hostarch/etc site files out of and include things like a common-linux site file. This should also help out with adding multilib-specific site files (ie x32). This requires a smallish change to autotools.bbclass to find the files now and changes to toolchain-scripts.bbclass, meta-toolchain.bb and meta-environment.bb to deal with how CONFIG_SITE is now.

---
 meta/classes/autotools.bbclass             |    2 +-
 meta/classes/siteinfo.bbclass              |  202 +++++++++++++---------------
 meta/classes/toolchain-scripts.bbclass     |    2 +-
 meta/recipes-core/meta/meta-environment.bb |    2 +-
 meta/recipes-core/meta/meta-toolchain.bb   |    2 +-
 5 files changed, 100 insertions(+), 110 deletions(-)
 create mode 100644 meta/site/common-linux
meta/classes/autotools.bbclass +0 -0
index 98c871a..5e8799a 100644

meta/classes/autotools.bbclass inherit siteinfo · line 29

Quoted 5 lines
meta/classes/autotools.bbclass +1 -1
@@ -26,7 +26,7 @@ inherit siteinfo
 
 # Space separated list of shell scripts with variables defined to supply test
 # results for autoconf tests we cannot run at build time.
-export CONFIG_SITE = "${@siteinfo_get_files(d)}"
+export CONFIG_SITE = "${@' '.join(siteinfo_get_files(d))}"

I'm not sure we have to change the return value of the function to become an iterator/list, or that it actually buys us much?

Quoted 143 lines
meta/classes/autotools.bbclass +0 -0
 acpaths = "default"
 EXTRA_AUTORECONF = "--exclude=autopoint"
meta/classes/siteinfo.bbclass +64 -65
index 78b7008..283ef42 100644
@@ -15,121 +15,111 @@
 # It is an error for the target not to exist.
 # If 'what' doesn't exist then an empty value is returned
 #
-def get_siteinfo_list(d):
-       target = bb.data.getVar('HOST_ARCH', d, 1) + "-" + bb.data.getVar('HOST_OS', d, 1)
+def siteinfo_data(d):
+    archinfo = {
+        "allarch": "endian-little bit-32", # bogus, but better than special-casing the checks below for allarch
+        "arm": "endian-little bit-32 arm-common",
+        "armeb": "endian-big bit-32 arm-common",
+        "avr32": "endian-big bit-32 avr32-common",
+        "bfin": "endian-little bit-32 bfin-common",
+        "i386": "endian-little bit-32 ix86-common",
+        "i486": "endian-little bit-32 ix86-common",
+        "i586": "endian-little bit-32 ix86-common",
+        "i686": "endian-little bit-32 ix86-common",
+        "ia64": "endian-little bit-64",
+        "microblaze": "endian-big bit-32 microblaze-common",
+        "microblazeel": "endian-little bit-32 microblaze-common",
+        "mips": "endian-big bit-32 mips-common",
+        "mips64": "endian-big bit-64 mips64-common",
+        "mips64el": "endian-little bit-64 mips64-common",
+        "mipsel": "endian-little bit-32 mips-common",
+        "powerpc": "endian-big bit-32 powerpc-common",
+        "nios2": "endian-little bit-32 nios2-common",
+        "powerpc64": "endian-big bit-64 powerpc-common powerpc64-linux",
+        "ppc": "endian-big bit-32 powerpc-common",
+        "ppc64": "endian-big bit-64 powerpc-common powerpc64-linux",
+        "sh3": "endian-little bit-32 sh-common",
+        "sh4": "endian-little bit-32 sh-common",
+        "sparc": "endian-big bit-32",
+        "viac3": "endian-little bit-32 ix86-common",
+        "x86_64": "endian-little bit-64",
+    }
+    osinfo = {
+        "darwin": "common-darwin",
+        "darwin9": "common-darwin",
+        "linux": "common-linux common-glibc",
+        "linux-gnueabi": "common-linux common-glibc",
+        "linux-gnuspe": "common-linux common-glibc",
+        "linux-uclibc": "common-linux common-uclibc",
+        "linux-uclibceabi": "common-linux common-uclibc",
+        "linux-uclibcspe": "common-linux common-uclibc",
+        "uclinux-uclibc": "common-uclibc",
+        "cygwin": "common-cygwin",
+        "mingw32": "common-mingw",
+    }
+    targetinfo = {
+        "arm-linux-gnueabi": "arm-linux",
+        "arm-linux-uclibceabi": "arm-linux-uclibc",
+        "armeb-linux-gnueabi": "armeb-linux",
+        "armeb-linux-uclibceabi": "armeb-linux-uclibc",
+        "powerpc-linux-gnuspe": "powerpc-linux",
+        "powerpc-linux-uclibcspe": "powerpc-linux-uclibc",
+    }
 
-       targetinfo = {\
-               "allarch-linux":           "",\
-               "armeb-linux":             "endian-big bit-32 common-glibc arm-common",\
-               "armeb-linux-gnueabi":     "endian-big bit-32 common-glibc arm-common armeb-linux",\
-               "armeb-linux-uclibc":      "endian-big bit-32 common-uclibc arm-common",\
-               "armeb-linux-uclibceabi": "endian-big bit-32 common-uclibc arm-common armeb-linux-uclibc",\
-               "arm-darwin":              "endian-little bit-32 common-darwin",\
-               "arm-darwin8":              "endian-little bit-32 common-darwin",\
-               "arm-linux":               "endian-little bit-32 common-glibc arm-common",\
-               "arm-linux-gnueabi":       "endian-little bit-32 common-glibc arm-common arm-linux",\
-               "arm-linux-uclibc":        "endian-little bit-32 common-uclibc arm-common",\
-               "arm-linux-uclibceabi": "endian-little bit-32 common-uclibc arm-common arm-linux-uclibc",\
-               "avr32-linux":             "endian-big bit-32 common-glibc avr32-common",\ 
-               "avr32-linux-uclibc":      "endian-big bit-32 common-uclibc avr32-common",\
-               "bfin-uclinux-uclibc":       "endian-little bit-32 common-uclibc bfin-common",\
-               "i386-linux":              "endian-little bit-32 common-glibc ix86-common",\
-               "i486-linux":              "endian-little bit-32 common-glibc ix86-common",\
-               "i586-linux":              "endian-little bit-32 common-glibc ix86-common",\
-               "i686-linux":              "endian-little bit-32 common-glibc ix86-common",\
-               "i386-linux-uclibc":       "endian-little bit-32 common-uclibc ix86-common",\
-               "i486-linux-uclibc":       "endian-little bit-32 common-uclibc ix86-common",\
-               "i586-linux-uclibc":       "endian-little bit-32 common-uclibc ix86-common",\
-               "i686-linux-uclibc":       "endian-little bit-32 common-uclibc ix86-common",\
-               "microblaze-linux-gnu":    "endian-big bit-32 common-glibc microblaze-common",\
-               "microblazeel-linux-gnu":  "endian-little bit-32 common-glibc microblaze-common",\
-               "mipsel-linux":            "endian-little bit-32 common-glibc mips-common",\
-               "mipsel-linux-uclibc":     "endian-little bit-32 common-uclibc mips-common",\
-               "mips-linux":              "endian-big bit-32 common-glibc mips-common",\
-               "mips-linux-uclibc":       "endian-big bit-32 common-uclibc mips-common",\
-               "powerpc-darwin":          "endian-big bit-32 common-darwin",\
-               "ppc-linux":               "endian-big bit-32 common-glibc powerpc-common",\ 
-	       "powerpc-linux":           "endian-big bit-32 common-glibc powerpc-common",\
-               "powerpc-linux-gnuspe":    "endian-big bit-32 common-glibc powerpc-common",\
-               "powerpc-linux-uclibc":    "endian-big bit-32 common-uclibc powerpc-common",\
-               "sh3-linux":               "endian-little bit-32 common-glibc sh-common",\
-               "sh4-linux":               "endian-little bit-32 common-glibc sh-common",\
-               "sh4-linux-uclibc":        "endian-little bit-32 common-uclibc sh-common",\
-               "sparc-linux":             "endian-big bit-32 common-glibc",\
-               "x86_64-linux":            "endian-little bit-64 common-glibc",\
-               "x86_64-linux-uclibc":     "endian-little bit-64 common-uclibc"}
-       if target in targetinfo:
-               info = targetinfo[target].split()
-               info.append(target)
-               info.append("common")
-               return info
-       else:
-               bb.error("Information not available for target '%s'" % target)
+    hostarch = d.getVar("HOST_ARCH", True)
+    hostos = d.getVar("HOST_OS", True)
+    target = "%s-%s" % (hostarch, hostos)
 
+    sitedata = []
+    if hostarch in archinfo:
+        sitedata.extend(archinfo[hostarch].split())
+    if hostos in osinfo:
+        sitedata.extend(osinfo[hostos].split())
+    if target in targetinfo:
+        sitedata.extend(targetinfo[target].split())
+    sitedata.append(target)
+    sitedata.append("common")
 
-#
-# Define which site files to use. We check for several site files and
-# use each one that is found, based on the list returned by get_siteinfo_list()
-#
-# Search for the files in the following directories:
-# 1) ${BBPATH}/site (in reverse) - app specific, then site wide
-# 2) ${FILE_DIRNAME}/site-${PV}         - app version specific
-#
-def siteinfo_get_files(d):
-       sitefiles = ""
-
-       # Determine which site files to look for
-       sites = get_siteinfo_list(d)
+    bb.debug(1, "SITE files %s" % sitedata);
+    return sitedata
 
-       # Check along bbpath for site files and append in reverse order so
-       # the application specific sites files are last and system site
-       # files first.

meta/classes/siteinfo.bbclass line 87

Quoted 10 lines
meta/classes/siteinfo.bbclass +2 -8
-       path_bb = bb.data.getVar('BBPATH', d, 1)
-       for p in (path_bb or "").split(':'):
-               tmp = ""
-               for i in sites:
-                       fname = os.path.join(p, 'site', i)
-                       if os.path.exists(fname):
-                               tmp += fname + " "
-               sitefiles = tmp + sitefiles;
+python () {
+    sitedata = set(siteinfo_data(d))

If we're going to do this in anonymous python, why not save out the list in a variable at this point? See below for why that might be a bad idea on the other hand... :)

Quoted 34 lines
meta/classes/siteinfo.bbclass +17 -15
+    if "endian-little" in sitedata:
+        d.setVar("SITEINFO_ENDIANESS", "le")
+    elif "endian-big" in sitedata:
+        d.setVar("SITEINFO_ENDIANESS", "be")
+    else:
+        bb.error("Unable to determine endianness for architecture '%s'" %
+                 d.getVar("HOST_ARCH", True))
+        bb.fatal("Please add your architecture to siteinfo.bbclass")
 
-       # Now check for the applications version specific site files
-       path_pkgv = os.path.join(bb.data.getVar('FILE_DIRNAME', d, 1), "site-" + bb.data.getVar('PV', d, 1))
-       for i in sites:
-               fname = os.path.join(path_pkgv, i)
-               if os.path.exists(fname):
-                       sitefiles += fname + " "
+    if "bit-32" in sitedata:
+        d.setVar("SITEINFO_BITS", "32")
+    elif "bit-64" in sitedata:
+        d.setVar("SITEINFO_BITS", "64")
+    else:
+        bb.error("Unable to determine bit size for architecture '%s'" %
+                 d.getVar("HOST_ARCH", True))
+        bb.fatal("Please add your architecture to siteinfo.bbclass")
+}
 
-       # Now check for siteconfig cache files
-       path_siteconfig = bb.data.getVar('SITECONFIG_SYSROOTCACHE', d, 1)
-       if os.path.isdir(path_siteconfig):
-               for i in os.listdir(path_siteconfig):
-                       fname = os.path.join(path_siteconfig, i)
-                       sitefiles += fname + " "
-
-       bb.debug(1, "SITE files " + sitefiles);
-       return sitefiles

meta/classes/siteinfo.bbclass line 108

Quoted 10 lines
meta/classes/siteinfo.bbclass +2 -8
-
-def siteinfo_get_endianess(d):
-       info = get_siteinfo_list(d)
-       if 'endian-little' in info:
-              return "le"
-       elif 'endian-big' in info:
-              return "be"
-       bb.error("Site info could not determine endianess for target")
+def siteinfo_get_files(d):
+    sitedata = siteinfo_data(d)

and then here we could just retrieve it?

Quoted 32 lines
meta/classes/siteinfo.bbclass +11 -10
+    for path in d.getVar("BBPATH", True).split(":"):
+        for element in sitedata:
+            filename = os.path.join(path, "site", element)
+            if os.path.exists(filename):
+                yield filename
 
-def siteinfo_get_bits(d):
-       info = get_siteinfo_list(d)
-       if 'bit-32' in info:
-              return "32"
-       elif 'bit-64' in info:
-              return "64"
-       bb.error("Site info could not determine bit size for target")
+    # Now check for siteconfig cache files
+    path_siteconfig = bb.data.getVar('SITECONFIG_SYSROOTCACHE', d, 1)
+    if os.path.isdir(path_siteconfig):
+        for i in os.listdir(path_siteconfig):
+            filename = os.path.join(path_siteconfig, i)
+            yield filename
 
 #
 # Make some information available via variables
 #
-SITEINFO_ENDIANESS  = "${@siteinfo_get_endianess(d)}"
-SITEINFO_BITS       = "${@siteinfo_get_bits(d)}"
 SITECONFIG_SYSROOTCACHE = "${STAGING_DATADIR}/${TARGET_SYS}_config_site.d"
-
meta/classes/toolchain-scripts.bbclass +0 -0
index 3301319..751a47e 100644

meta/classes/toolchain-scripts.bbclass toolchain_create_tree_env_script () { · line 45

Quoted 5 lines
meta/classes/toolchain-scripts.bbclass +1 -1
@@ -42,7 +42,7 @@ toolchain_create_tree_env_script () {
 	echo 'export PKG_CONFIG_SYSROOT_DIR=${PKG_CONFIG_SYSROOT_DIR}' >> $script
 	echo 'export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}' >> $script
 
-	echo 'export CONFIG_SITE="${@siteinfo_get_files(d)}"' >> $script
+	echo 'export CONFIG_SITE="${CONFIG_SITE}"' >> $script

This is the thing that really caught my eye when combined with the code below...

Quoted 20 lines
meta/classes/toolchain-scripts.bbclass +0 -0
 	echo 'export CC=${TARGET_PREFIX}gcc' >> $script
 	echo 'export CXX=${TARGET_PREFIX}g++' >> $script
meta/recipes-core/meta/meta-environment.bb +1 -1
index 351cbf0..865dd00 100644
@@ -8,7 +8,7 @@ EXCLUDE_FROM_WORLD = "1"
 
 inherit toolchain-scripts
 # get target config site before inheritting cross-canadian
-TARGET_CONFIG_SITE := "${@siteinfo_get_files(d)}"
+TARGET_CONFIG_SITE := "${@' '.join(siteinfo_get_files(d))}"
 
 SDK_DIR = "${WORKDIR}/sdk"
 SDK_OUTPUT = "${SDK_DIR}/image"
meta/recipes-core/meta/meta-toolchain.bb +0 -0
index ab98bf9..3abba42 100644

meta/recipes-core/meta/meta-toolchain.bb LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3 · line 12

Quoted 5 lines
meta/recipes-core/meta/meta-toolchain.bb +1 -1
@@ -9,4 +9,4 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3
 IMAGETEST ?= "dummy"
 inherit populate_sdk imagetest-${IMAGETEST}
 
-CONFIG_SITE := "${@siteinfo_get_files(d)}"
+CONFIG_SITE := "${@' '.join(siteinfo_get_files(d))}"

What I'm worried about is that here, CONFIG_SITE is expanded to something using := but if this was combined with toolchain-scripts.bbclass, the value of CONFIG_SITE in that code might change.

The safest thing to do would be to leave the ' '.join(....) syntax in the .bbclass since I think it was deliberate for some ordering issue.

Of course my comment about caching the results in a variable are defeated by the fact we do change HOST_ARCH and other variables and expect the list we get back to update accordingly...

So if we can fix these details I think this is good to go in.

Cheers,

Richard

#5 lore raw
In reply to Tom Rini
Quoted 9 lines · Tom Rini

Hey all,

This is the second of two pull requests. This doesn't depend on the first request, it's just splitting changes up. There's three changes here. First, site/ix86-common was setting the wrong value for unsigned int. Second, change perl to use SITEINFO variables rather than functions. Third, bring in the various changes in siteinfo.bbclass that have been in oe.dev. This last part will, I hope, also make dealing with multilib-specific siteinfo stuff easier (also alternative ABIs like x32).

Note, this is NOT an objection to the changes. However, one thing to keep in mind.

(In fact I like the changes being suggested)

We have a dynamic site-configuation mechanism already in place. So it's important that we don't duplicate things within the site/* files.

Currently the recipes: glibc, zlib, eglibc, and uclibc contain dynamic site_config files. (See ./recipes-core/glibc/site_config/* for an example)

The output of these files get placed into a target arch specific site config
directory: ${STAGING_DATADIR}/${TARGET_SYS}_config_site.d

These are automatically loaded as well as the predefined "common" items. By using the dynamically generated versions we can change the configuration options for glibc, uclibc, etc and the site config will automatically get updated based on the existing checks.

So instead of updating the various site/* files, if the value can be discovered -- or is defined by a given package.. we should be using the dynamic method as it'll be safer over the long-haul. Someone might need to go over the existing ones and see if there is anything that falls under this.

BTW, I did notice that ncurses is supposed to have a dynamic site_config, but it somehow got checked into the wrong location. I'll submit a pull request for that shortly.

--Mark

Quoted 32 lines

My next step is to work on merging and verifying as much as possible the site files in oe-core and oe.dev.

The following changes since commit e66c2999afa2b3efbce8bb46c89f9db5e15f35c7:
Saul Wold (1):
libx11: ensure nativesdk uses correct DEPENDS and XCB flags

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib trini/update-siteinfo
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=trini/update-siteinfo

Tom Rini (3):
site/ix86-common: Fix ac_cv_sizeof_unsigned_char definition
perl: Use SITEINFO variables not functions siteinfo.bbclass: Port over oe.dev logic for site files

 meta/classes/autotools.bbclass             |    2 +-
 meta/classes/siteinfo.bbclass              |  202 +++++++++++++---------------
 meta/classes/toolchain-scripts.bbclass     |    2 +-
 meta/recipes-core/meta/meta-environment.bb |    2 +-
 meta/recipes-core/meta/meta-toolchain.bb   |    2 +-
 meta/recipes-devtools/perl/perl_5.12.3.bb  |    4 +-
 meta/site/ix86-common                      |    2 +-
 7 files changed, 103 insertions(+), 113 deletions(-)
 create mode 100644 meta/site/common-linux

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

author
#6 lore raw
Quoted 15 lines · Mark Hatle
Quoted 9 lines · Tom Rini

Hey all,

This is the second of two pull requests. This doesn't depend on the first request, it's just splitting changes up. There's three changes here. First, site/ix86-common was setting the wrong value for unsigned int. Second, change perl to use SITEINFO variables rather than functions. Third, bring in the various changes in siteinfo.bbclass that have been in oe.dev. This last part will, I hope, also make dealing with multilib-specific siteinfo stuff easier (also alternative ABIs like x32).

Note, this is NOT an objection to the changes. However, one thing to keep in mind.

(In fact I like the changes being suggested)

Quoted 8 lines

We have a dynamic site-configuation mechanism already in place. So it's important that we don't duplicate things within the site/* files.

Currently the recipes: glibc, zlib, eglibc, and uclibc contain dynamic site_config files. (See ./recipes-core/glibc/site_config/* for an example)

The output of these files get placed into a target arch specific site config
directory: ${STAGING_DATADIR}/${TARGET_SYS}_config_site.d

I want to confirm that these files are still generated, found and working. But maybe part 4 of my series will be talking about some of this stuff a bit more and if that's really the best method for the goal.

Signature · 2 lines
Tom Rini
Mentor Graphics Corporation
#7 lore raw
In reply to Tom Rini
Quoted 17 lines · Tom Rini

Hey all,

This is the second of two pull requests. This doesn't depend on the first request, it's just splitting changes up. There's three changes here. First, site/ix86-common was setting the wrong value for unsigned int. Second, change perl to use SITEINFO variables rather than functions. Third, bring in the various changes in siteinfo.bbclass that have been in oe.dev. This last part will, I hope, also make dealing with multilib-specific siteinfo stuff easier (also alternative ABIs like x32).

My next step is to work on merging and verifying as much as possible the site files in oe-core and oe.dev.

The following changes since commit e66c2999afa2b3efbce8bb46c89f9db5e15f35c7:
Saul Wold (1):
libx11: ensure nativesdk uses correct DEPENDS and XCB flags

Quoted 8 lines

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib trini/update-siteinfo
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=trini/update-siteinfo

Tom Rini (3):
site/ix86-common: Fix ac_cv_sizeof_unsigned_char definition
perl: Use SITEINFO variables not functions

I've merged these two.

Quoted 1 line

siteinfo.bbclass: Port over oe.dev logic for site files

I'm still in the process of reviewing this as its not easy to see everything thats changing in there...

Cheers,

Richard

author
#8 lore raw
Quoted 27 lines · Richard Purdie
Quoted 17 lines · Tom Rini

Hey all,

This is the second of two pull requests. This doesn't depend on the first request, it's just splitting changes up. There's three changes here. First, site/ix86-common was setting the wrong value for unsigned int. Second, change perl to use SITEINFO variables rather than functions. Third, bring in the various changes in siteinfo.bbclass that have been in oe.dev. This last part will, I hope, also make dealing with multilib-specific siteinfo stuff easier (also alternative ABIs like x32).

My next step is to work on merging and verifying as much as possible the site files in oe-core and oe.dev.

The following changes since commit e66c2999afa2b3efbce8bb46c89f9db5e15f35c7:
Saul Wold (1):
libx11: ensure nativesdk uses correct DEPENDS and XCB flags

Quoted 8 lines

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib trini/update-siteinfo
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=trini/update-siteinfo

Tom Rini (3):
site/ix86-common: Fix ac_cv_sizeof_unsigned_char definition
perl: Use SITEINFO variables not functions

Quoted 6 lines

I've merged these two.

Quoted 1 line

siteinfo.bbclass: Port over oe.dev logic for site files

I'm still in the process of reviewing this as its not easy to see everything thats changing in there...

Yeah, sorry, I just couldn't break it down anymore. I can say I did a world before and after on qemux86, diff'd config.logs and didn't see anything other than the ix86-common bugfix in differences.

Signature · 2 lines
Tom Rini
Mentor Graphics Corporation