Skip to contentSkip to conversation

Share gcc work directories

PATCH Applied Robert Yang 5 participants 17 messages Jun 28, 2011 – Jul 1, 2011

lore
Share & tools
lore
#0 lore raw

v4 cover Share gcc work directories

Changes of V4:

* Change the definition of GLIBC_DYNAMIC_LINKER as Richard suggested.

e.g., the entries in the files that look like:
#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"

become

  #define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR"/ld-linux-x86-64.so.2"

and we define SYSTEMLIBS_DIR in defaults.h.

NOTE, the round brackets:
#define GLIBC_DYNAMIC_LINKER64 (SYSTEMLIBS_DIR "/ld-linux-x86-64.so.2")

doesn't work in in the following define:

  #define LINUX_DYNAMIC_LINKER \
          CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)

  so use:
  #define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR"/ld-linux-x86-64.so.2"

* Compare to V3, reduce two patches which are for gcc-crosssdk.inc and gcc-cross-canadian which are not needed any more.

* Fix the conflicts(gcc-4.6.0 -> gcc-4.6, and the ${BRANCH})

* Both tested 4.5.1 and 4.6:

  $ bitbake meta-toolchain core-image-sato
  $ runqemu qemurm

Also unpack the sdk to /opt and test to make sure the toolchain works well.

The following changes since commit a1f79a7896b6411669b3ccada6204d2695e80fc5:

runqueue.py: Add umask task control (2011-06-24 12:23:12 +0100)

are available in the git repository at:
git://git.pokylinux.org/poky-contrib robert/share_gcc
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=robert/share_gcc

Robert Yang (4):
bitbake: share source directory
Share gcc work directories
gcc-4.5.1: share work directories
gcc-4.6: share work directories

 bitbake/lib/bb/build.py                            |    4 +-
 bitbake/lib/bb/cache.py                            |    3 +
 bitbake/lib/bb/runqueue.py                         |   10 +++
 meta/recipes-devtools/gcc/gcc-4.5.1.inc            |    1 +
 .../gcc-4.5.1/use-defaults.h-and-t-oe-in-B.patch   |   57 ++++++++++++++
 meta/recipes-devtools/gcc/gcc-4.6.inc              |    5 +-
 .../gcc/gcc-4.6/use-defaults.h-and-t-oe-in-B.patch |   80 ++++++++++++++++++++
 meta/recipes-devtools/gcc/gcc-common.inc           |   32 +++++++-
 meta/recipes-devtools/gcc/gcc-configure-common.inc |   48 +++++++-----
 meta/recipes-devtools/gcc/gcc-configure-cross.inc  |    4 +-
 meta/recipes-devtools/gcc/gcc-crosssdk.inc         |    6 --
 11 files changed, 218 insertions(+), 32 deletions(-)
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.5.1/use-defaults.h-and-t-oe-in-B.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.6/use-defaults.h-and-t-oe-in-B.patch
#1 lore raw

PATCH v4 1/4 bitbake: share source directory

This patch is derived from Richard, it is a quick proof of concept to show how source code could be shared between recipes which use ${B} to have a separate build directory compared to source directory ${S}.

---
 bitbake/lib/bb/build.py    |    4 ++--
 bitbake/lib/bb/cache.py    |    3 +++
 bitbake/lib/bb/runqueue.py |   10 ++++++++++
 3 files changed, 15 insertions(+), 2 deletions(-)
bitbake/lib/bb/build.py +2 -2
index f69464c..5c70309 100644
@@ -383,10 +383,10 @@ def stamp_internal(taskname, d, file_name):
         taskflagname = taskname.replace("_setscene", "")
 
     if file_name:
-        stamp = d.stamp[file_name]
+        stamp = d.stamp_base[file_name].get(taskflagname) or d.stamp[file_name]
         extrainfo = d.stamp_extrainfo[file_name].get(taskflagname) or ""
     else:
-        stamp = d.getVar('STAMP', True)
+        stamp = d.getVarFlag(taskflagname, 'stamp-base', True) or d.getVar('STAMP', True)
         file_name = d.getVar('BB_FILENAME', True)
         extrainfo = d.getVarFlag(taskflagname, 'stamp-extra-info', True) or ""
 
bitbake/lib/bb/cache.py +3 -0
index 6c92a93..99d7395 100644
@@ -124,6 +124,7 @@ class CoreRecipeInfo(RecipeInfoCommon):
         self.broken = self.getvar('BROKEN', metadata)
         self.not_world = self.getvar('EXCLUDE_FROM_WORLD', metadata)
         self.stamp = self.getvar('STAMP', metadata)
+        self.stamp_base = self.flaglist('stamp-base', self.tasks, metadata)
         self.stamp_extrainfo = self.flaglist('stamp-extra-info', self.tasks, metadata)
         self.packages_dynamic = self.listvar('PACKAGES_DYNAMIC', metadata)
         self.depends          = self.depvar('DEPENDS', metadata)
@@ -151,6 +152,7 @@ class CoreRecipeInfo(RecipeInfoCommon):
         cachedata.pkg_dp = {}
 
         cachedata.stamp = {}
+        cachedata.stamp_base = {}
         cachedata.stamp_extrainfo = {}
         cachedata.fn_provides = {}
         cachedata.pn_provides = defaultdict(list)
@@ -183,6 +185,7 @@ class CoreRecipeInfo(RecipeInfoCommon):
         cachedata.pkg_pepvpr[fn] = (self.pe, self.pv, self.pr)
         cachedata.pkg_dp[fn] = self.defaultpref
         cachedata.stamp[fn] = self.stamp
+        cachedata.stamp_base[fn] = self.stamp_base
         cachedata.stamp_extrainfo[fn] = self.stamp_extrainfo
 
         provides = [self.pn]
bitbake/lib/bb/runqueue.py +10 -0
index b801877..e1d32b7 100644
@@ -105,6 +105,11 @@ class RunQueueScheduler(object):
             if self.rq.runq_running[taskid] == 1:
                 continue
             if self.rq.runq_buildable[taskid] == 1:
+                fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[taskid]]
+                taskname = self.rqdata.runq_task[taskid]
+                stamp = bb.build.stampfile(taskname, self.rqdata.dataCache, fn)
+                if stamp in self.rq.build_stamps.values():
+                    continue
                 return taskid
 
     def next(self):
@@ -1009,6 +1014,7 @@ class RunQueueExecute:
         self.runq_complete = []
         self.build_pids = {}
         self.build_pipes = {}
+        self.build_stamps = {}
         self.failed_fnids = []
 
     def runqueue_process_waitpid(self):
@@ -1023,6 +1029,9 @@ class RunQueueExecute:
         del self.build_pids[result[0]]
         self.build_pipes[result[0]].close()
         del self.build_pipes[result[0]]
+        # self.build_stamps[result[0]] may not exist when use shared work directory.
+        if result[0] in self.build_stamps.keys():
+            del self.build_stamps[result[0]]
         if result[1] != 0:
             self.task_fail(task, result[1]>>8)
         else:
@@ -1330,6 +1339,7 @@ class RunQueueExecuteTasks(RunQueueExecute):
 
             self.build_pids[pid] = task
             self.build_pipes[pid] = runQueuePipe(pipein, pipeout, self.cfgData)
+            self.build_stamps[pid] = bb.build.stampfile(taskname, self.rqdata.dataCache, fn)
             self.runq_running[task] = 1
             self.stats.taskActive()
             if self.stats.active < self.number_tasks:
Signature · 1 line
1.7.1
#2 lore raw

Re: [PATCH 1/4 V4] bitbake: share source directory

Quoted 10 lines · Robert Yang

This patch is derived from Richard, it is a quick proof of concept to show how source code could be shared between recipes which use ${B} to have a separate build directory compared to source directory ${S}.

---
 bitbake/lib/bb/build.py    |    4 ++--
 bitbake/lib/bb/cache.py    |    3 +++
 bitbake/lib/bb/runqueue.py |   10 ++++++++++
 3 files changed, 15 insertions(+), 2 deletions(-)

Since this is a bitbake patch it should really have gone to the bitbake-devel list. Its been posted around enough times for review though so I've merged it into bitbake. I did massively reword the commit message though to reflect what the changes mean from a bitbake perspective.

Cheers,

Richard

#3 lore raw

PATCH v4 2/4 Share gcc work directories

In reply to Robert Yang

This patched is derived from Richard, make gcc use the shared source directory during the different building:

1) Make gcc-cross, gcc-cross-initial, gcc-cross-intermediate and gcc-runtime share the same source directory.

2) The source directory is ${TMPDIR}/work-shared/gcc-${PV}, for example:
tmp/work-shared/gcc-4.5.1

3) Fix do_clean to clean the shared source directory and stamps

4) gcc uses sed and creates config files against ${S} which means the directory should not be shared. Change the way to make it work:

* The configure option --with-headers=${STAGING_DIR_TARGET}${SYSTEMHEADERS} can replace the sed command, see the code in configure:

if test "x$with_headers" != x; then
glibc_header_dir=$with_headers

This has the same effect as the sed command:

sed -i 's:^\([ ]*\)glibc_header_dir=\"${with_build_sysroot}/usr/include\": ...

so add the --with-headers=${STAGING_DIR_TARGET}${SYSTEMHEADERS} to gcc-configure-cross.inc( not add to gcc-configure-common.inc, since not all the gcc building need this, the one which has its own do_configure doesn't need it).

* Move t-oe from ${T} to ${B}/gcc, so that the patched Makefile.in can read it easily, please see the commit for gcc-4.5.1 and gcc-4.6.0.

* Use the defaults.h in ${B}/gcc instead of ${S}/gcc, and the patched configure.ac(configure) can read it correctly, please see the commit for gcc-4.5.1 and gcc-4.6.0.

* The gcc-crosssdk.inc used sed to edit ${S}/config/*/linux*.h
to change the GLIBC_DYNAMIC_LINKER, which made the source incompatible. To make the source compatible:
- Use:
sed -i ${S}/gcc/config/*/linux*.h -e \
's#\(GLIBC_DYNAMIC_LINKER[^ ]*\)\( *"/lib.*\)#\1 SYSTEMLIBS_DIR\2#'

so entries in the files that look like:
#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2" would become
#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR"/ld-linux-x86-64.so.2" and we define SYSTEMLIBS_DIR in defaults.h.

NOTE:
#define GLIBC_DYNAMIC_LINKER64 (SYSTEMLIBS_DIR "/ld-linux-x86-64.so.2") doesn't work in in the following define:
#define LINUX_DYNAMIC_LINKER \
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)

	so use
	#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR"/ld-linux-x86-64.so.2"

5) Add do_configure_prepend to gcc-configure-common.inc and remove the one in gcc-crosssdk.inc, this makes it easy to share the source, otherwise we need do extra changes in gcc-configure-sdk.inc.

6) Use "cat > file <_EOF" to replace the "echo > file"

---
 meta/recipes-devtools/gcc/gcc-common.inc           |   32 ++++++++++++-
 meta/recipes-devtools/gcc/gcc-configure-common.inc |   48 +++++++++++--------
 meta/recipes-devtools/gcc/gcc-configure-cross.inc  |    4 +-
 meta/recipes-devtools/gcc/gcc-crosssdk.inc         |    6 ---
 4 files changed, 61 insertions(+), 29 deletions(-)
meta/recipes-devtools/gcc/gcc-common.inc +30 -2
index a3fa234..7bf036c 100644
@@ -37,10 +37,38 @@ ${GNU_MIRROR}/gcc/	http://gcc.get-software.com/releases/ \n \
 #
 gcclibdir = "${libdir}/gcc"
 BINV = "${PV}"
-S = "${WORKDIR}/gcc-${PV}"
-B = "${S}/build.${HOST_SYS}.${TARGET_SYS}"
+#S = "${WORKDIR}/gcc-${PV}"
+S = "${TMPDIR}/work-shared/gcc-${PV}/gcc-${PV}"
+B = "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}"
+
+# SS means Shared Stamps directory
+SS = "${TMPDIR}/stamps/work-shared/gcc-${PV}"
+do_fetch[stamp-base] = "${SS}"
+do_unpack[stamp-base] = "${SS}"
+do_patch[stamp-base] = "${SS}"
+
+# SW means Shared Work directory
+SW = "${TMPDIR}/work-shared/gcc-${PV}"
+WORKDIR_task-unpack = "${SW}"
+WORKDIR_task-patch = "${SW}"
 
 target_includedir ?= "${includedir}"
 target_libdir ?= "${libdir}"
 target_base_libdir ?= "${base_libdir}"
 target_prefix ?= "${prefix}"
+
+CLEANFUNCS += "workshared_clean"
+# The do_clean should be exclusive since share ${S}
+do_clean[lockfiles] = "${TMPDIR}/stamps/work-shared/gcc-${PV}.clean.lock"
+
+python workshared_clean () {
+	"""clear the source directory"""
+	dir = bb.data.expand("${SW}", d)
+	bb.note("Removing " + dir)
+	oe.path.remove(dir)
+
+	"""clear the the stamps in work-shared"""
+	dir = "%s.*" % bb.data.expand(d.getVarFlag('do_fetch', 'stamp-base', True), d)
+	bb.note("Removing " + dir)
+	oe.path.remove(dir)
+}
meta/recipes-devtools/gcc/gcc-configure-common.inc +28 -20

61 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-configure-cross.inc +3 -1
index 346d164..36edb81 100644
@@ -2,7 +2,9 @@ require gcc-configure-common.inc
 
 USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibc", "no", "", d )}'
 
-EXTRA_OECONF += " --enable-poison-system-directories "
+EXTRA_OECONF += " --enable-poison-system-directories \
+		  --with-headers=${STAGING_DIR_TARGET}${SYSTEMHEADERS} \
+		"
 
 EXTRA_OECONF_PATHS = "--with-local-prefix=${STAGING_DIR_TARGET}${target_exec_prefix} \
 		      --with-gxx-include-dir=${target_includedir}/c++ \
meta/recipes-devtools/gcc/gcc-crosssdk.inc +0 -6
index 6e7d5a7..0fd82a6 100644
@@ -8,9 +8,3 @@ GCCMULTILIB = "--disable-multilib"
 
 DEPENDS = "virtual/${TARGET_PREFIX}binutils-crosssdk virtual/${TARGET_PREFIX}libc-for-gcc-nativesdk gettext-native"
 PROVIDES = "virtual/${TARGET_PREFIX}gcc-crosssdk virtual/${TARGET_PREFIX}g++-crosssdk"
-
-do_configure_prepend () {
-	# Change the default dynamic linker path to the one in the SDK
-	sed -i ${S}/gcc/config/*/linux*.h -e 's#\(GLIBC_DYNAMIC_LINKER.*\)/lib/#\1${SYSTEMLIBS}#'
-	sed -i ${S}/gcc/config/*/linux*.h -e 's#\(GLIBC_DYNAMIC_LINKER.*\)/lib64/#\1${SYSTEMLIBS}#'
-}
Signature · 1 line
1.7.1
#4 lore raw

PATCH v4 3/4 gcc-4.5.1: share work directories

In reply to Robert Yang

Fix configure and Makefile to read the defaults.h and t-oe from ${B}, so that the ${S} can be shared.

---
 meta/recipes-devtools/gcc/gcc-4.5.1.inc            |    1 +
 .../gcc-4.5.1/use-defaults.h-and-t-oe-in-B.patch   |   57 ++++++++++++++++++++
 2 files changed, 58 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.5.1/use-defaults.h-and-t-oe-in-B.patch
meta/recipes-devtools/gcc/gcc-4.5.1.inc +1 -0
index b7d0265..76f9837 100644
@@ -57,6 +57,7 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
 	   file://gcc-poison-parameters.patch \
 	   file://GPLUSPLUS_INCLUDE_DIR_with_sysroot.patch \
 	   file://COLLECT_GCC_OPTIONS.patch \
+	   file://use-defaults.h-and-t-oe-in-B.patch \
 	  "
 	
 SRC_URI_append_sh3  = " file://sh3-installfix-fixheaders.patch;patch=1 "
meta/recipes-devtools/gcc/gcc-4.5.1/use-defaults.h-and-t-oe-in-B.patch new file +57 -0

57 lines not on this page · raw message

Signature · 1 line
1.7.1
#5 lore raw

PATCH v4 4/4 gcc-4.6: share work directories

In reply to Robert Yang

* Fix configure and Makefile to read the defaults.h and t-oe from ${B}, so that the ${S} can be shared.

* Change ${S} to the shared source directory.

---
 meta/recipes-devtools/gcc/gcc-4.6.inc              |    5 +-
 .../gcc/gcc-4.6/use-defaults.h-and-t-oe-in-B.patch |   80 ++++++++++++++++++++
 2 files changed, 84 insertions(+), 1 deletions(-)
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.6/use-defaults.h-and-t-oe-in-B.patch
meta/recipes-devtools/gcc/gcc-4.6.inc +4 -1
index 577e7f7..a012049 100644
@@ -66,11 +66,14 @@ SRC_URI = "svn://gcc.gnu.org/svn/gcc/branches;module=${BRANCH};proto=http \
 	   file://GPLUSPLUS_INCLUDE_DIR_with_sysroot.patch \
 	   file://COLLECT_GCC_OPTIONS.patch \
            file://volatile_access_backport.patch \
+           file://use-defaults.h-and-t-oe-in-B.patch \
 	  "
 
 SRC_URI_append_sh3  = " file://sh3-installfix-fixheaders.patch;patch=1 "
 
-S = "${WORKDIR}/${BRANCH}"
+#S = "${WORKDIR}/${BRANCH}"
+S = "${TMPDIR}/work-shared/gcc-${PV}/${BRANCH}"
+B = "${WORKDIR}/${BRANCH}/build.${HOST_SYS}.${TARGET_SYS}"
 
 # Language Overrides
 FORTRAN = ""
meta/recipes-devtools/gcc/gcc-4.6/use-defaults.h-and-t-oe-in-B.patch new file +80 -0

80 lines not on this page · raw message

Signature · 1 line
1.7.1
#6 lore raw
In reply to Robert Yang

Hi Robert,

I just wanted to let you know that these look good, thanks.

I need to get the changes into bitbake for this first (along with the umask and multilib changes), let that version sit for a vew days, them bump the version requirement of OE-Core so we can then merge these patches.

They will therefore merge and I'm happy with them but it will be a few more days before that happens. The bitbake piece is now merged already.

Cheers,

Richard

Quoted 70 lines · Robert Yang

Changes of V4:

* Change the definition of GLIBC_DYNAMIC_LINKER as Richard suggested.

e.g., the entries in the files that look like:
#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"

become

  #define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR"/ld-linux-x86-64.so.2"

and we define SYSTEMLIBS_DIR in defaults.h.

NOTE, the round brackets:
#define GLIBC_DYNAMIC_LINKER64 (SYSTEMLIBS_DIR "/ld-linux-x86-64.so.2")

doesn't work in in the following define:

  #define LINUX_DYNAMIC_LINKER \
          CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)

  so use:
  #define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR"/ld-linux-x86-64.so.2"

* Compare to V3, reduce two patches which are for gcc-crosssdk.inc and gcc-cross-canadian which are not needed any more.

* Fix the conflicts(gcc-4.6.0 -> gcc-4.6, and the ${BRANCH})

* Both tested 4.5.1 and 4.6:

  $ bitbake meta-toolchain core-image-sato
  $ runqemu qemurm

Also unpack the sdk to /opt and test to make sure the toolchain works well.

The following changes since commit a1f79a7896b6411669b3ccada6204d2695e80fc5:

runqueue.py: Add umask task control (2011-06-24 12:23:12 +0100)

are available in the git repository at:
git://git.pokylinux.org/poky-contrib robert/share_gcc
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=robert/share_gcc

Robert Yang (4):
bitbake: share source directory
Share gcc work directories
gcc-4.5.1: share work directories
gcc-4.6: share work directories

 bitbake/lib/bb/build.py                            |    4 +-
 bitbake/lib/bb/cache.py                            |    3 +
 bitbake/lib/bb/runqueue.py                         |   10 +++
 meta/recipes-devtools/gcc/gcc-4.5.1.inc            |    1 +
 .../gcc-4.5.1/use-defaults.h-and-t-oe-in-B.patch   |   57 ++++++++++++++
 meta/recipes-devtools/gcc/gcc-4.6.inc              |    5 +-
 .../gcc/gcc-4.6/use-defaults.h-and-t-oe-in-B.patch |   80 ++++++++++++++++++++
 meta/recipes-devtools/gcc/gcc-common.inc           |   32 +++++++-
 meta/recipes-devtools/gcc/gcc-configure-common.inc |   48 +++++++-----
 meta/recipes-devtools/gcc/gcc-configure-cross.inc  |    4 +-
 meta/recipes-devtools/gcc/gcc-crosssdk.inc         |    6 --
 11 files changed, 218 insertions(+), 32 deletions(-)
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.5.1/use-defaults.h-and-t-oe-in-B.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.6/use-defaults.h-and-t-oe-in-B.patch

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

Applied
#7 lore raw
In reply to Robert Yang
Quoted 62 lines · Robert Yang

Changes of V4:

* Change the definition of GLIBC_DYNAMIC_LINKER as Richard suggested.

e.g., the entries in the files that look like:

   #define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"

   become

   #define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR"/ld-linux-x86-64.so.2"

   and we define SYSTEMLIBS_DIR in defaults.h.

   NOTE, the round brackets:
   #define GLIBC_DYNAMIC_LINKER64 (SYSTEMLIBS_DIR "/ld-linux-x86-64.so.2")

   doesn't work in in the following define:

   #define LINUX_DYNAMIC_LINKER \
           CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)

   so use:
   #define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR"/ld-linux-x86-64.so.2"

* Compare to V3, reduce two patches which are for gcc-crosssdk.inc and gcc-cross-canadian which are not needed any more.

* Fix the conflicts(gcc-4.6.0 -> gcc-4.6, and the ${BRANCH})

* Both tested 4.5.1 and 4.6:

   $ bitbake meta-toolchain core-image-sato
   $ runqemu qemurm

Also unpack the sdk to /opt and test to make sure the toolchain works well.

The following changes since commit a1f79a7896b6411669b3ccada6204d2695e80fc5:

   runqueue.py: Add umask task control (2011-06-24 12:23:12 +0100)

are available in the git repository at:
git://git.pokylinux.org/poky-contrib robert/share_gcc
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=robert/share_gcc

Robert Yang (4):
bitbake: share source directory
Share gcc work directories
gcc-4.5.1: share work directories
gcc-4.6: share work directories

  bitbake/lib/bb/build.py                            |    4 +-
  bitbake/lib/bb/cache.py                            |    3 +
  bitbake/lib/bb/runqueue.py                         |   10 +++
  meta/recipes-devtools/gcc/gcc-4.5.1.inc            |    1 +
  .../gcc-4.5.1/use-defaults.h-and-t-oe-in-B.patch   |   57 ++++++++++++++
  meta/recipes-devtools/gcc/gcc-4.6.inc              |    5 +-
  .../gcc/gcc-4.6/use-defaults.h-and-t-oe-in-B.patch |   80 ++++++++++++++++++++
  meta/recipes-devtools/gcc/gcc-common.inc           |   32 +++++++-
  meta/recipes-devtools/gcc/gcc-configure-common.inc |   48 +++++++-----
  meta/recipes-devtools/gcc/gcc-configure-cross.inc  |    4 +-
  meta/recipes-devtools/gcc/gcc-crosssdk.inc         |    6 --
  11 files changed, 218 insertions(+), 32 deletions(-)
Quoted 9 lines

create mode 100644 meta/recipes-devtools/gcc/gcc-4.5.1/use-defaults.h-and-t-oe-in-B.patch create mode 100644 meta/recipes-devtools/gcc/gcc-4.6/use-defaults.h-and-t-oe-in-B.patch

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

Merged into OE-Core

Thanks
Sau!

#8 lore raw

It's broken, please revert. Re: [PATCH 0/4 V4] Share gcc work directories

Op 1 jul 2011, om 01:26 heeft Saul Wold het volgende geschreven:

Quoted 67 lines · Robert Yang
Quoted 66 lines

Changes of V4:

* Change the definition of GLIBC_DYNAMIC_LINKER as Richard suggested.

e.g., the entries in the files that look like:
#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"

become

  #define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR"/ld-linux-x86-64.so.2"

and we define SYSTEMLIBS_DIR in defaults.h.

NOTE, the round brackets:
#define GLIBC_DYNAMIC_LINKER64 (SYSTEMLIBS_DIR "/ld-linux-x86-64.so.2")

doesn't work in in the following define:

  #define LINUX_DYNAMIC_LINKER \
          CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)

  so use:
  #define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR"/ld-linux-x86-64.so.2"

* Compare to V3, reduce two patches which are for gcc-crosssdk.inc and gcc-cross-canadian which are not needed any more.

* Fix the conflicts(gcc-4.6.0 -> gcc-4.6, and the ${BRANCH})

* Both tested 4.5.1 and 4.6:

  $ bitbake meta-toolchain core-image-sato
  $ runqemu qemurm

Also unpack the sdk to /opt and test to make sure the toolchain works well.

The following changes since commit a1f79a7896b6411669b3ccada6204d2695e80fc5:

runqueue.py: Add umask task control (2011-06-24 12:23:12 +0100)

are available in the git repository at:
git://git.pokylinux.org/poky-contrib robert/share_gcc
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=robert/share_gcc

Robert Yang (4):
bitbake: share source directory
Share gcc work directories
gcc-4.5.1: share work directories
gcc-4.6: share work directories

 bitbake/lib/bb/build.py                            |    4 +-
 bitbake/lib/bb/cache.py                            |    3 +
 bitbake/lib/bb/runqueue.py                         |   10 +++
 meta/recipes-devtools/gcc/gcc-4.5.1.inc            |    1 +
 .../gcc-4.5.1/use-defaults.h-and-t-oe-in-B.patch   |   57 ++++++++++++++
 meta/recipes-devtools/gcc/gcc-4.6.inc              |    5 +-
 .../gcc/gcc-4.6/use-defaults.h-and-t-oe-in-B.patch |   80 ++++++++++++++++++++
 meta/recipes-devtools/gcc/gcc-common.inc           |   32 +++++++-
 meta/recipes-devtools/gcc/gcc-configure-common.inc |   48 +++++++-----
 meta/recipes-devtools/gcc/gcc-configure-cross.inc  |    4 +-
 meta/recipes-devtools/gcc/gcc-crosssdk.inc         |    6 --
 11 files changed, 218 insertions(+), 32 deletions(-)
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.5.1/use-defaults.h-and-t-oe-in-B.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.6/use-defaults.h-and-t-oe-in-B.patch
Quoted 7 lines
Quoted 5 lines

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

Merged into OE-Core

incremental build with rm_work turned on:

ERROR: Function 'do_configure' failed (see /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/temp/log.do_configure.27092 for further information)
ERROR: Logfile of failure stored in: /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/temp/log.do_configure.27092 Log data follows:

| + cd /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/gcc-4.5/build.x86_64-linux.arm-angstrom-linux-gnueabi
| + do_configure
| + sed -i '/OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/gcc-4_5-branch/gcc/config/*/linux*.h' -e 's#\(GLIBC_DYNAMIC_LINKER[^ ]*\)\( *"/lib.*\)#\1 SYSTEMLIBS_DIR\2#'
| sed: can't read /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/gcc-4_5-branch/gcc/config/*/linux*.h: No such file or directory
| ERROR: Function 'do_configure' failed (see /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/temp/log.do_configure.27092 for further information)

NOTE: package gcc-cross-initial-4.5-r37.0+svnr175127: task do_configure: Failed
ERROR: Task 764 (/OE/tentacle/sources/meta-openembedded/meta-oe/recipes-devtools/gcc/gcc-cross-initial_4.5.bb, do_configure) failed with exit code '1'

Can this patchset get reverted please and reapplied when it actually has been tested to work?

#9 lore raw

Re: It's broken, please revert. Re: [PATCH 0/4 V4] Share gcc work directories

Quoted 87 lines · Koen Kooi

Op 1 jul 2011, om 01:26 heeft Saul Wold het volgende geschreven:

Quoted 67 lines · Robert Yang
Quoted 66 lines

Changes of V4:

* Change the definition of GLIBC_DYNAMIC_LINKER as Richard suggested.

e.g., the entries in the files that look like:
#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"

become

  #define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR"/ld-linux-x86-64.so.2"

and we define SYSTEMLIBS_DIR in defaults.h.

NOTE, the round brackets:
#define GLIBC_DYNAMIC_LINKER64 (SYSTEMLIBS_DIR "/ld-linux-x86-64.so.2")

doesn't work in in the following define:

  #define LINUX_DYNAMIC_LINKER \
          CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)

  so use:
  #define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR"/ld-linux-x86-64.so.2"

* Compare to V3, reduce two patches which are for gcc-crosssdk.inc and gcc-cross-canadian which are not needed any more.

* Fix the conflicts(gcc-4.6.0 -> gcc-4.6, and the ${BRANCH})

* Both tested 4.5.1 and 4.6:

  $ bitbake meta-toolchain core-image-sato
  $ runqemu qemurm

Also unpack the sdk to /opt and test to make sure the toolchain works well.

The following changes since commit a1f79a7896b6411669b3ccada6204d2695e80fc5:

runqueue.py: Add umask task control (2011-06-24 12:23:12 +0100)

are available in the git repository at:
git://git.pokylinux.org/poky-contrib robert/share_gcc
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=robert/share_gcc

Robert Yang (4):
bitbake: share source directory
Share gcc work directories
gcc-4.5.1: share work directories
gcc-4.6: share work directories

 bitbake/lib/bb/build.py                            |    4 +-
 bitbake/lib/bb/cache.py                            |    3 +
 bitbake/lib/bb/runqueue.py                         |   10 +++
 meta/recipes-devtools/gcc/gcc-4.5.1.inc            |    1 +
 .../gcc-4.5.1/use-defaults.h-and-t-oe-in-B.patch   |   57 ++++++++++++++
 meta/recipes-devtools/gcc/gcc-4.6.inc              |    5 +-
 .../gcc/gcc-4.6/use-defaults.h-and-t-oe-in-B.patch |   80 ++++++++++++++++++++
 meta/recipes-devtools/gcc/gcc-common.inc           |   32 +++++++-
 meta/recipes-devtools/gcc/gcc-configure-common.inc |   48 +++++++-----
 meta/recipes-devtools/gcc/gcc-configure-cross.inc  |    4 +-
 meta/recipes-devtools/gcc/gcc-crosssdk.inc         |    6 --
 11 files changed, 218 insertions(+), 32 deletions(-)
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.5.1/use-defaults.h-and-t-oe-in-B.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.6/use-defaults.h-and-t-oe-in-B.patch
Quoted 7 lines
Quoted 5 lines

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

Merged into OE-Core

incremental build with rm_work turned on:

ERROR: Function 'do_configure' failed (see /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/temp/log.do_configure.27092 for further information)
ERROR: Logfile of failure stored in: /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/temp/log.do_configure.27092 Log data follows:

| + cd /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/gcc-4.5/build.x86_64-linux.arm-angstrom-linux-gnueabi
| + do_configure
| + sed -i '/OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/gcc-4_5-branch/gcc/config/*/linux*.h' -e 's#\(GLIBC_DYNAMIC_LINKER[^ ]*\)\( *"/lib.*\)#\1 SYSTEMLIBS_DIR\2#'
| sed: can't read /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/gcc-4_5-branch/gcc/config/*/linux*.h: No such file or directory
| ERROR: Function 'do_configure' failed (see /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/temp/log.do_configure.27092 for further information)
Quoted 4 lines

NOTE: package gcc-cross-initial-4.5-r37.0+svnr175127: task do_configure: Failed
ERROR: Task 764 (/OE/tentacle/sources/meta-openembedded/meta-oe/recipes-devtools/gcc/gcc-cross-initial_4.5.bb, do_configure) failed with exit code '1'

Can this patchset get reverted please and reapplied when it actually has been tested to work?

Testing patches is not the sole responsibility of myself and Saul. This gcc patchset was on the mailing list for a considerable time and has been tested in a variety of ways. Various breakage was identified found and those breakages were fixed. The fact there looks to be some incremental build issue with rm_work is unfortunate and likely easy to fix so I think this request is a little out of proportion.

If someone had reported the problem before it merged it would have waited until it was fixed before merging.

I find it ironic you're one of the people asking to turn the autobuilder red, make warnings fatal and break things for everyone as 'its the only way to get people to look at and fix them; but on the other hand you're unhappy if testing of patches doesn't happen on every single combination of usages and something does break :/.

Cheers,

Richard

#10 lore raw

Re: It's broken, please revert. Re: [PATCH 0/4 V4] Share gcc work directories

Op 1 jul 2011, om 10:10 heeft Richard Purdie het volgende geschreven:

Quoted 100 lines · Koen Kooi
Quoted 87 lines

Op 1 jul 2011, om 01:26 heeft Saul Wold het volgende geschreven:

Quoted 67 lines · Robert Yang
Quoted 66 lines

Changes of V4:

* Change the definition of GLIBC_DYNAMIC_LINKER as Richard suggested.

e.g., the entries in the files that look like:
#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"

become

#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR"/ld-linux-x86-64.so.2"

and we define SYSTEMLIBS_DIR in defaults.h.

NOTE, the round brackets:
#define GLIBC_DYNAMIC_LINKER64 (SYSTEMLIBS_DIR "/ld-linux-x86-64.so.2")

doesn't work in in the following define:

#define LINUX_DYNAMIC_LINKER \
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)

so use:
#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR"/ld-linux-x86-64.so.2"

* Compare to V3, reduce two patches which are for gcc-crosssdk.inc and gcc-cross-canadian which are not needed any more.

* Fix the conflicts(gcc-4.6.0 -> gcc-4.6, and the ${BRANCH})

* Both tested 4.5.1 and 4.6:

 $ bitbake meta-toolchain core-image-sato
 $ runqemu qemurm

Also unpack the sdk to /opt and test to make sure the toolchain works well.

The following changes since commit a1f79a7896b6411669b3ccada6204d2695e80fc5:

runqueue.py: Add umask task control (2011-06-24 12:23:12 +0100)

are available in the git repository at:
git://git.pokylinux.org/poky-contrib robert/share_gcc
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=robert/share_gcc

Robert Yang (4):
bitbake: share source directory
Share gcc work directories
gcc-4.5.1: share work directories
gcc-4.6: share work directories

bitbake/lib/bb/build.py                            |    4 +-
bitbake/lib/bb/cache.py                            |    3 +
bitbake/lib/bb/runqueue.py                         |   10 +++
meta/recipes-devtools/gcc/gcc-4.5.1.inc            |    1 +
.../gcc-4.5.1/use-defaults.h-and-t-oe-in-B.patch   |   57 ++++++++++++++
meta/recipes-devtools/gcc/gcc-4.6.inc              |    5 +-
.../gcc/gcc-4.6/use-defaults.h-and-t-oe-in-B.patch |   80 ++++++++++++++++++++
meta/recipes-devtools/gcc/gcc-common.inc           |   32 +++++++-
meta/recipes-devtools/gcc/gcc-configure-common.inc |   48 +++++++-----
meta/recipes-devtools/gcc/gcc-configure-cross.inc  |    4 +-
meta/recipes-devtools/gcc/gcc-crosssdk.inc         |    6 --
11 files changed, 218 insertions(+), 32 deletions(-)

create mode 100644 meta/recipes-devtools/gcc/gcc-4.5.1/use-defaults.h-and-t-oe-in-B.patch create mode 100644 meta/recipes-devtools/gcc/gcc-4.6/use-defaults.h-and-t-oe-in-B.patch

Quoted 7 lines
Quoted 5 lines

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

Merged into OE-Core

incremental build with rm_work turned on:

ERROR: Function 'do_configure' failed (see /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/temp/log.do_configure.27092 for further information)
ERROR: Logfile of failure stored in: /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/temp/log.do_configure.27092 Log data follows:

| + cd /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/gcc-4.5/build.x86_64-linux.arm-angstrom-linux-gnueabi
| + do_configure
| + sed -i '/OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/gcc-4_5-branch/gcc/config/*/linux*.h' -e 's#\(GLIBC_DYNAMIC_LINKER[^ ]*\)\( *"/lib.*\)#\1 SYSTEMLIBS_DIR\2#'
| sed: can't read /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/gcc-4_5-branch/gcc/config/*/linux*.h: No such file or directory
| ERROR: Function 'do_configure' failed (see /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/temp/log.do_configure.27092 for further information)
Quoted 4 lines

NOTE: package gcc-cross-initial-4.5-r37.0+svnr175127: task do_configure: Failed
ERROR: Task 764 (/OE/tentacle/sources/meta-openembedded/meta-oe/recipes-devtools/gcc/gcc-cross-initial_4.5.bb, do_configure) failed with exit code '1'

Can this patchset get reverted please and reapplied when it actually has been tested to work?

Testing patches is not the sole responsibility of myself and Saul. This gcc patchset was on the mailing list for a considerable time and has been tested in a variety of ways. Various breakage was identified found and those breakages were fixed. The fact there looks to be some incremental build issue with rm_work is unfortunate and likely easy to fix so I think this request is a little out of proportion.

Quoted 2 lines

If someone had reported the problem before it merged it would have waited until it was fixed before merging.

"They will therefore merge and I'm happy with them but it will be a few more days before that happens. "

I was under the impression that I still had a few more days to test them now that the eglibc problems have been solved. I don't think you can blame people for not testing gcc when eglibc was still blowing up in their faces.

Quoted 5 lines

I find it ironic you're one of the people asking to turn the autobuilder red, make warnings fatal and break things for everyone as 'its the only way to get people to look at and fix them; but on the other hand you're unhappy if testing of patches doesn't happen on every single combination of usages and something does break :/.

I was actually planning to test them today, now that eglibc works again.

#11 lore raw

Re: It's broken, please revert. Re: [PATCH 0/4 V4] Share gcc work directories

Quoted 14 lines · Koen Kooi

Op 1 jul 2011, om 10:10 heeft Richard Purdie het volgende geschreven:

Quoted 11 lines · Koen Kooi
Quoted 1 line

Op 1 jul 2011, om 01:26 heeft Saul Wold het volgende geschreven:

Testing patches is not the sole responsibility of myself and Saul. This gcc patchset was on the mailing list for a considerable time and has been tested in a variety of ways. Various breakage was identified found and those breakages were fixed. The fact there looks to be some incremental build issue with rm_work is unfortunate and likely easy to fix so I think this request is a little out of proportion.

If someone had reported the problem before it merged it would have waited until it was fixed before merging.

Quoted 7 lines

"They will therefore merge and I'm happy with them but it will be a few more days before that happens. "

I was under the impression that I still had a few more days to test them now that the eglibc problems have been solved. I don't think you can blame people for not testing gcc when eglibc was still blowing up in their faces.

I balanced a few different factors in the timing. Merging code like this on a Friday with 4th July and the US going on holiday next week didn't seem like a better time to do this so I went for something slightly earlier. I was working on the assumption we had the eglibc issues resolved.

Quoted 7 lines
Quoted 5 lines

I find it ironic you're one of the people asking to turn the autobuilder red, make warnings fatal and break things for everyone as 'its the only way to get people to look at and fix them; but on the other hand you're unhappy if testing of patches doesn't happen on every single combination of usages and something does break :/.

I was actually planning to test them today, now that eglibc works again.

Ok, sorry I wasn't aware of that.

Cheers,

Richard

#12 lore raw

Re: It's broken, please revert. Re: [PATCH 0/4 V4] Share gcc work directories

In reply to Koen Kooi
Quoted 10 lines · Koen Kooi

incremental build with rm_work turned on:

ERROR: Function 'do_configure' failed (see /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/temp/log.do_configure.27092 for further information)
ERROR: Logfile of failure stored in: /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/temp/log.do_configure.27092 Log data follows:

| + cd /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/gcc-4.5/build.x86_64-linux.arm-angstrom-linux-gnueabi
| + do_configure
| + sed -i '/OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/gcc-4_5-branch/gcc/config/*/linux*.h' -e 's#\(GLIBC_DYNAMIC_LINKER[^ ]*\)\( *"/lib.*\)#\1 SYSTEMLIBS_DIR\2#'
| sed: can't read /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/gcc-4_5-branch/gcc/config/*/linux*.h: No such file or directory
| ERROR: Function 'do_configure' failed (see /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/temp/log.do_configure.27092 for further information)
Quoted 4 lines

NOTE: package gcc-cross-initial-4.5-r37.0+svnr175127: task do_configure: Failed
ERROR: Task 764 (/OE/tentacle/sources/meta-openembedded/meta-oe/recipes-devtools/gcc/gcc-cross-initial_4.5.bb, do_configure) failed with exit code '1'

Can this patchset get reverted please and reapplied when it actually has been tested to work?

I checked and everything is fine with rm_work.

Looking at this error, something is changing ${S} as there is no mention of work-shared in the sed command yet there should be.

At a guess this is coming from:

http://git.angstrom-distribution.org/cgi-bin/cgit.cgi/meta-openembedded/tree/meta-oe/recipes-devtools/gcc/gcc-4.5.inc

where it says:

S = "${WORKDIR}/${BRANCH}"

and if that is changed to

S_append = "/${BRANCH}"

or removed it will likely work better.

Cheers,

Richard

#13 lore raw

Re: It's broken, please revert. Re: [PATCH 0/4 V4] Share gcc work directories

Op 1 jul 2011, om 10:32 heeft Richard Purdie het volgende geschreven:

Quoted 27 lines · Koen Kooi
Quoted 10 lines

incremental build with rm_work turned on:

ERROR: Function 'do_configure' failed (see /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/temp/log.do_configure.27092 for further information)
ERROR: Logfile of failure stored in: /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/temp/log.do_configure.27092 Log data follows:

| + cd /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/gcc-4.5/build.x86_64-linux.arm-angstrom-linux-gnueabi
| + do_configure
| + sed -i '/OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/gcc-4_5-branch/gcc/config/*/linux*.h' -e 's#\(GLIBC_DYNAMIC_LINKER[^ ]*\)\( *"/lib.*\)#\1 SYSTEMLIBS_DIR\2#'
| sed: can't read /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/gcc-4_5-branch/gcc/config/*/linux*.h: No such file or directory
| ERROR: Function 'do_configure' failed (see /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/temp/log.do_configure.27092 for further information)
Quoted 4 lines

NOTE: package gcc-cross-initial-4.5-r37.0+svnr175127: task do_configure: Failed
ERROR: Task 764 (/OE/tentacle/sources/meta-openembedded/meta-oe/recipes-devtools/gcc/gcc-cross-initial_4.5.bb, do_configure) failed with exit code '1'

Can this patchset get reverted please and reapplied when it actually has been tested to work?

I checked and everything is fine with rm_work.

Looking at this error, something is changing ${S} as there is no mention of work-shared in the sed command yet there should be.

At a guess this is coming from:

http://git.angstrom-distribution.org/cgi-bin/cgit.cgi/meta-openembedded/tree/meta-oe/recipes-devtools/gcc/gcc-4.5.inc

where it says:

Quoted 7 lines

S = "${WORKDIR}/${BRANCH}"

and if that is changed to

S_append = "/${BRANCH}"

or removed it will likely work better.

It was indeed a bug in meta-oe and the following fixed it:

https://github.com/koenkooi/meta-oe/commit/8a917caaa5506fa0f875202243658a1c2fe60c40

#14 lore raw

Re: It's broken, please revert. Re: [PATCH 0/4 V4] Share gcc work directories

Quoted 34 lines · Koen Kooi

Op 1 jul 2011, om 10:32 heeft Richard Purdie het volgende geschreven:

Quoted 31 lines · Koen Kooi
Quoted 10 lines

incremental build with rm_work turned on:

ERROR: Function 'do_configure' failed (see /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/temp/log.do_configure.27092 for further information)
ERROR: Logfile of failure stored in: /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/temp/log.do_configure.27092 Log data follows:

| + cd /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/gcc-4.5/build.x86_64-linux.arm-angstrom-linux-gnueabi
| + do_configure
| + sed -i '/OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/gcc-4_5-branch/gcc/config/*/linux*.h' -e 's#\(GLIBC_DYNAMIC_LINKER[^ ]*\)\( *"/lib.*\)#\1 SYSTEMLIBS_DIR\2#'
| sed: can't read /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/gcc-4_5-branch/gcc/config/*/linux*.h: No such file or directory
| ERROR: Function 'do_configure' failed (see /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/temp/log.do_configure.27092 for further information)
Quoted 4 lines

NOTE: package gcc-cross-initial-4.5-r37.0+svnr175127: task do_configure: Failed
ERROR: Task 764 (/OE/tentacle/sources/meta-openembedded/meta-oe/recipes-devtools/gcc/gcc-cross-initial_4.5.bb, do_configure) failed with exit code '1'

Can this patchset get reverted please and reapplied when it actually has been tested to work?

I checked and everything is fine with rm_work.

Looking at this error, something is changing ${S} as there is no mention of work-shared in the sed command yet there should be.

At a guess this is coming from:

http://git.angstrom-distribution.org/cgi-bin/cgit.cgi/meta-openembedded/tree/meta-oe/recipes-devtools/gcc/gcc-4.5.inc

where it says:

S = "${WORKDIR}/${BRANCH}"

and if that is changed to

Quoted 7 lines
Quoted 3 lines

S_append = "/${BRANCH}"

or removed it will likely work better.

It was indeed a bug in meta-oe and the following fixed it:

https://github.com/koenkooi/meta-oe/commit/8a917caaa5506fa0f875202243658a1c2fe60c40

Additionally you would need to port the patch which mucks makefile fragment I think

Quoted 4 lines

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

#15 lore raw

Re: It's broken, please revert. Re: [PATCH 0/4 V4] Share gcc work directories

Op 1 jul 2011, om 15:57 heeft Khem Raj het volgende geschreven:

Quoted 40 lines · Koen Kooi
Quoted 37 lines

Op 1 jul 2011, om 10:32 heeft Richard Purdie het volgende geschreven:

Quoted 33 lines · Koen Kooi
Quoted 10 lines

incremental build with rm_work turned on:

ERROR: Function 'do_configure' failed (see /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/temp/log.do_configure.27092 for further information)
ERROR: Logfile of failure stored in: /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/temp/log.do_configure.27092 Log data follows:

| + cd /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/gcc-4.5/build.x86_64-linux.arm-angstrom-linux-gnueabi
| + do_configure
| + sed -i '/OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/gcc-4_5-branch/gcc/config/*/linux*.h' -e 's#\(GLIBC_DYNAMIC_LINKER[^ ]*\)\( *"/lib.*\)#\1 SYSTEMLIBS_DIR\2#'
| sed: can't read /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/gcc-4_5-branch/gcc/config/*/linux*.h: No such file or directory
| ERROR: Function 'do_configure' failed (see /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/temp/log.do_configure.27092 for further information)
Quoted 4 lines

NOTE: package gcc-cross-initial-4.5-r37.0+svnr175127: task do_configure: Failed
ERROR: Task 764 (/OE/tentacle/sources/meta-openembedded/meta-oe/recipes-devtools/gcc/gcc-cross-initial_4.5.bb, do_configure) failed with exit code '1'

Can this patchset get reverted please and reapplied when it actually has been tested to work?

I checked and everything is fine with rm_work.

Looking at this error, something is changing ${S} as there is no mention of work-shared in the sed command yet there should be.

At a guess this is coming from:

http://git.angstrom-distribution.org/cgi-bin/cgit.cgi/meta-openembedded/tree/meta-oe/recipes-devtools/gcc/gcc-4.5.inc

where it says:

S = "${WORKDIR}/${BRANCH}"

and if that is changed to

S_append = "/${BRANCH}"

Quoted 7 lines
Quoted 5 lines
Quoted 1 line

or removed it will likely work better.

It was indeed a bug in meta-oe and the following fixed it:

https://github.com/koenkooi/meta-oe/commit/8a917caaa5506fa0f875202243658a1c2fe60c40

Additionally you would need to port the patch which mucks makefile fragment I think

Any volunteers for that? My incremental build seems to work now, haven't tried a from scratch yet.

#16 lore raw

Re: It's broken, please revert. Re: [PATCH 0/4 V4] Share gcc work directories

Quoted 45 lines · Koen Kooi

Op 1 jul 2011, om 15:57 heeft Khem Raj het volgende geschreven:

Quoted 42 lines · Koen Kooi
Quoted 39 lines

Op 1 jul 2011, om 10:32 heeft Richard Purdie het volgende geschreven:

Quoted 34 lines · Koen Kooi
Quoted 10 lines

incremental build with rm_work turned on:

ERROR: Function 'do_configure' failed (see /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/temp/log.do_configure.27092 for further information)
ERROR: Logfile of failure stored in: /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/temp/log.do_configure.27092 Log data follows:

| + cd /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/gcc-4.5/build.x86_64-linux.arm-angstrom-linux-gnueabi
| + do_configure
| + sed -i '/OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/gcc-4_5-branch/gcc/config/*/linux*.h' -e 's#\(GLIBC_DYNAMIC_LINKER[^ ]*\)\( *"/lib.*\)#\1 SYSTEMLIBS_DIR\2#'
| sed: can't read /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/gcc-4_5-branch/gcc/config/*/linux*.h: No such file or directory
| ERROR: Function 'do_configure' failed (see /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-cross-initial-4.5-r37.0+svnr175127/temp/log.do_configure.27092 for further information)
Quoted 4 lines

NOTE: package gcc-cross-initial-4.5-r37.0+svnr175127: task do_configure: Failed
ERROR: Task 764 (/OE/tentacle/sources/meta-openembedded/meta-oe/recipes-devtools/gcc/gcc-cross-initial_4.5.bb, do_configure) failed with exit code '1'

Can this patchset get reverted please and reapplied when it actually has been tested to work?

I checked and everything is fine with rm_work.

Looking at this error, something is changing ${S} as there is no mention of work-shared in the sed command yet there should be.

At a guess this is coming from:

http://git.angstrom-distribution.org/cgi-bin/cgit.cgi/meta-openembedded/tree/meta-oe/recipes-devtools/gcc/gcc-4.5.inc

where it says:

S = "${WORKDIR}/${BRANCH}"

and if that is changed to

S_append = "/${BRANCH}"

or removed it will likely work better.

Quoted 7 lines
Quoted 5 lines
Quoted 3 lines

It was indeed a bug in meta-oe and the following fixed it:

https://github.com/koenkooi/meta-oe/commit/8a917caaa5506fa0f875202243658a1c2fe60c40

Additionally you would need to port the patch which mucks makefile fragment I think

Any volunteers for that? My incremental build seems to work now, haven't tried a from scratch yet.

I had a patch for it half of which you already have. Once it builds through I will post.

Quoted 4 lines

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