* [PATCH 1/1] package.bbclass: decouple splitting and stripping
@ 2015-03-13 21:57 Joe Slater
2015-03-13 22:50 ` Bernhard Reutner-Fischer
0 siblings, 1 reply; 7+ messages in thread
From: Joe Slater @ 2015-03-13 21:57 UTC (permalink / raw)
To: openembedded-core
Fix logic in split_and_strip_files() to allow splitting or
stripping independently. We also return quickly from this
function if we have nothing to do. We seek the following behavior:
Strip / Split Behavior
yes / yes binaries stripped; debug info and source in -dbg
no / yes debug info and source in -dbg
yes / no binaries stripped; -dbg packages empty
no / no -dbg packages empty (not a very useful case)
Currently, no/yes does not work and is the same as no/no.
Signed-off-by: Joe Slater <jslater@windriver.com>
---
meta/classes/package.bbclass | 108 ++++++++++++++++++++++--------------------
1 file changed, 57 insertions(+), 51 deletions(-)
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 9f64ed7..ad8771f 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -812,6 +812,12 @@ python fixup_perms () {
}
python split_and_strip_files () {
+
+ stripping = d.getVar('INHIBIT_PACKAGE_STRIP', True) != '1'
+ splitting = d.getVar('INHIBIT_PACKAGE_DEBUG_SPLIT', True) != '1'
+ if not (stripping or splitting):
+ return
+
import stat, errno
dvar = d.getVar('PKGD', True)
@@ -879,64 +885,64 @@ python split_and_strip_files () {
kernmods = []
libdir = os.path.abspath(dvar + os.sep + d.getVar("libdir", True))
baselibdir = os.path.abspath(dvar + os.sep + d.getVar("base_libdir", True))
- if (d.getVar('INHIBIT_PACKAGE_STRIP', True) != '1'):
- for root, dirs, files in cpath.walk(dvar):
- for f in files:
- file = os.path.join(root, f)
- if file.endswith(".ko") and file.find("/lib/modules/") != -1:
- kernmods.append(file)
- continue
- # Skip debug files
- if debugappend and file.endswith(debugappend):
- continue
- if debugdir and debugdir in os.path.dirname(file[len(dvar):]):
- continue
+ for root, dirs, files in cpath.walk(dvar):
+ for f in files:
+ file = os.path.join(root, f)
+ if file.endswith(".ko") and file.find("/lib/modules/") != -1:
+ kernmods.append(file)
+ continue
- try:
- ltarget = cpath.realpath(file, dvar, False)
- s = cpath.lstat(ltarget)
- except OSError as e:
- (err, strerror) = e.args
- if err != errno.ENOENT:
- raise
- # Skip broken symlinks
- continue
- if not s:
+ # Skip debug files
+ if debugappend and file.endswith(debugappend):
+ continue
+ if debugdir and debugdir in os.path.dirname(file[len(dvar):]):
+ continue
+
+ try:
+ ltarget = cpath.realpath(file, dvar, False)
+ s = cpath.lstat(ltarget)
+ except OSError as e:
+ (err, strerror) = e.args
+ if err != errno.ENOENT:
+ raise
+ # Skip broken symlinks
+ continue
+ if not s:
+ continue
+ # Check its an excutable
+ if (s[stat.ST_MODE] & stat.S_IXUSR) or (s[stat.ST_MODE] & stat.S_IXGRP) or (s[stat.ST_MODE] & stat.S_IXOTH) \
+ or ((file.startswith(libdir) or file.startswith(baselibdir)) and ".so" in f):
+ # If it's a symlink, and points to an ELF file, we capture the readlink target
+ if cpath.islink(file):
+ target = os.readlink(file)
+ if isELF(ltarget):
+ #bb.note("Sym: %s (%d)" % (ltarget, isELF(ltarget)))
+ symlinks[file] = target
continue
- # Check its an excutable
- if (s[stat.ST_MODE] & stat.S_IXUSR) or (s[stat.ST_MODE] & stat.S_IXGRP) or (s[stat.ST_MODE] & stat.S_IXOTH) \
- or ((file.startswith(libdir) or file.startswith(baselibdir)) and ".so" in f):
- # If it's a symlink, and points to an ELF file, we capture the readlink target
- if cpath.islink(file):
- target = os.readlink(file)
- if isELF(ltarget):
- #bb.note("Sym: %s (%d)" % (ltarget, isELF(ltarget)))
- symlinks[file] = target
+ # It's a file (or hardlink), not a link
+ # ...but is it ELF, and is it already stripped?
+ elf_file = isELF(file)
+ if elf_file & 1:
+ if elf_file & 2:
+ if 'already-stripped' in (d.getVar('INSANE_SKIP_' + pn, True) or "").split():
+ bb.note("Skipping file %s from %s for already-stripped QA test" % (file[len(dvar):], pn))
+ else:
+ msg = "File '%s' from %s was already stripped, this will prevent future debugging!" % (file[len(dvar):], pn)
+ package_qa_handle_error("already-stripped", msg, d)
continue
- # It's a file (or hardlink), not a link
- # ...but is it ELF, and is it already stripped?
- elf_file = isELF(file)
- if elf_file & 1:
- if elf_file & 2:
- if 'already-stripped' in (d.getVar('INSANE_SKIP_' + pn, True) or "").split():
- bb.note("Skipping file %s from %s for already-stripped QA test" % (file[len(dvar):], pn))
- else:
- msg = "File '%s' from %s was already stripped, this will prevent future debugging!" % (file[len(dvar):], pn)
- package_qa_handle_error("already-stripped", msg, d)
- continue
- # Check if it's a hard link to something else
- if s.st_nlink > 1:
- file_reference = "%d_%d" % (s.st_dev, s.st_ino)
- # Hard link to something else
- hardlinks[file] = file_reference
- continue
- elffiles[file] = elf_file
+ # Check if it's a hard link to something else
+ if s.st_nlink > 1:
+ file_reference = "%d_%d" % (s.st_dev, s.st_ino)
+ # Hard link to something else
+ hardlinks[file] = file_reference
+ continue
+ elffiles[file] = elf_file
#
# First lets process debug splitting
#
- if (d.getVar('INHIBIT_PACKAGE_DEBUG_SPLIT', True) != '1'):
+ if splitting:
hardlinkmap = {}
# For hardlinks, process only one of the files
for file in hardlinks:
@@ -1008,7 +1014,7 @@ python split_and_strip_files () {
#
# Now lets go back over things and strip them
#
- if (d.getVar('INHIBIT_PACKAGE_STRIP', True) != '1'):
+ if stripping:
strip = d.getVar("STRIP", True)
sfiles = []
for file in elffiles:
--
1.7.9.5
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/1] package.bbclass: decouple splitting and stripping
2015-03-13 21:57 [PATCH 1/1] package.bbclass: decouple splitting and stripping Joe Slater
@ 2015-03-13 22:50 ` Bernhard Reutner-Fischer
2015-03-17 21:20 ` Richard Purdie
0 siblings, 1 reply; 7+ messages in thread
From: Bernhard Reutner-Fischer @ 2015-03-13 22:50 UTC (permalink / raw)
To: Joe Slater, openembedded-core
On March 13, 2015 10:57:53 PM GMT+01:00, Joe Slater <jslater@windriver.com> wrote:
>Fix logic in split_and_strip_files() to allow splitting or
>stripping independently. We also return quickly from this
>function if we have nothing to do. We seek the following behavior:
>
>Strip / Split Behavior
>yes / yes binaries stripped; debug info and source in -dbg
>no / yes debug info and source in -dbg
>yes / no binaries stripped; -dbg packages empty
>no / no -dbg packages empty (not a very useful case)
>
>Currently, no/yes does not work and is the same as no/no.
>
>Signed-off-by: Joe Slater <jslater@windriver.com>
>---
>meta/classes/package.bbclass | 108
>++++++++++++++++++++++--------------------
> 1 file changed, 57 insertions(+), 51 deletions(-)
>
>diff --git a/meta/classes/package.bbclass
>b/meta/classes/package.bbclass
>index 9f64ed7..ad8771f 100644
>--- a/meta/classes/package.bbclass
>+++ b/meta/classes/package.bbclass
>@@ -812,6 +812,12 @@ python fixup_perms () {
> }
>
> python split_and_strip_files () {
>+ for root, dirs, files in cpath.walk(dvar):
>+ for f in files:
>+ file = os.path.join(root, f)
>+ if file.endswith(".ko") and file.find("/lib/modules/") !=
>-1:
>+ kernmods.append(file)
>+ continue
>
>+ # Skip debug files
>+ if debugappend and file.endswith(debugappend):
>+ continue
>+ if debugdir and debugdir in
>os.path.dirname(file[len(dvar):]):
>+ continue
>+
It's a pity to first construct the files just to throw them away right afterwards.
Maybe there are other cpath.walk spots that would benefit from file_not_endswith and dir filters?
Thanks,
>+ try:
>+ ltarget = cpath.realpath(file, dvar, False)
>+ s = cpath.lstat(ltarget)
>+ except OSError as e:
>+ (err, strerror) = e.args
>+ if err != errno.ENOENT:
>+ raise
>+ # Skip broken symlinks
>+ continue
>+ if not s:
>+ continue
>+ # Check its an excutable
>+ if (s[stat.ST_MODE] & stat.S_IXUSR) or (s[stat.ST_MODE] &
>stat.S_IXGRP) or (s[stat.ST_MODE] & stat.S_IXOTH) \
>+ or ((file.startswith(libdir) or
>file.startswith(baselibdir)) and ".so" in f):
>+ # If it's a symlink, and points to an ELF file, we
>capture the readlink target
>+ if cpath.islink(file):
>+ target = os.readlink(file)
>+ if isELF(ltarget):
>+ #bb.note("Sym: %s (%d)" % (ltarget,
>isELF(ltarget)))
>+ symlinks[file] = target
> continue
>- # Check its an excutable
>- if (s[stat.ST_MODE] & stat.S_IXUSR) or
>(s[stat.ST_MODE] & stat.S_IXGRP) or (s[stat.ST_MODE] & stat.S_IXOTH) \
>- or ((file.startswith(libdir) or
>file.startswith(baselibdir)) and ".so" in f):
>- # If it's a symlink, and points to an ELF file, we
>capture the readlink target
>- if cpath.islink(file):
>- target = os.readlink(file)
>- if isELF(ltarget):
>- #bb.note("Sym: %s (%d)" % (ltarget,
>isELF(ltarget)))
>- symlinks[file] = target
>+ # It's a file (or hardlink), not a link
>+ # ...but is it ELF, and is it already stripped?
>+ elf_file = isELF(file)
>+ if elf_file & 1:
>+ if elf_file & 2:
>+ if 'already-stripped' in
>(d.getVar('INSANE_SKIP_' + pn, True) or "").split():
>+ bb.note("Skipping file %s from %s for
>already-stripped QA test" % (file[len(dvar):], pn))
>+ else:
>+ msg = "File '%s' from %s was already
>stripped, this will prevent future debugging!" % (file[len(dvar):], pn)
>+
>package_qa_handle_error("already-stripped", msg, d)
> continue
>- # It's a file (or hardlink), not a link
>- # ...but is it ELF, and is it already stripped?
>- elf_file = isELF(file)
>- if elf_file & 1:
>- if elf_file & 2:
>- if 'already-stripped' in
>(d.getVar('INSANE_SKIP_' + pn, True) or "").split():
>- bb.note("Skipping file %s from %s for
>already-stripped QA test" % (file[len(dvar):], pn))
>- else:
>- msg = "File '%s' from %s was already
>stripped, this will prevent future debugging!" % (file[len(dvar):], pn)
>-
>package_qa_handle_error("already-stripped", msg, d)
>- continue
>- # Check if it's a hard link to something else
>- if s.st_nlink > 1:
>- file_reference = "%d_%d" % (s.st_dev,
>s.st_ino)
>- # Hard link to something else
>- hardlinks[file] = file_reference
>- continue
>- elffiles[file] = elf_file
>+ # Check if it's a hard link to something else
>+ if s.st_nlink > 1:
>+ file_reference = "%d_%d" % (s.st_dev,
>s.st_ino)
>+ # Hard link to something else
>+ hardlinks[file] = file_reference
>+ continue
>+ elffiles[file] = elf_file
>
> #
> # First lets process debug splitting
> #
>- if (d.getVar('INHIBIT_PACKAGE_DEBUG_SPLIT', True) != '1'):
>+ if splitting:
> hardlinkmap = {}
> # For hardlinks, process only one of the files
> for file in hardlinks:
>@@ -1008,7 +1014,7 @@ python split_and_strip_files () {
> #
> # Now lets go back over things and strip them
> #
>- if (d.getVar('INHIBIT_PACKAGE_STRIP', True) != '1'):
>+ if stripping:
> strip = d.getVar("STRIP", True)
> sfiles = []
> for file in elffiles:
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/1] package.bbclass: decouple splitting and stripping
2015-03-13 22:50 ` Bernhard Reutner-Fischer
@ 2015-03-17 21:20 ` Richard Purdie
2015-03-18 17:44 ` Slater, Joseph
0 siblings, 1 reply; 7+ messages in thread
From: Richard Purdie @ 2015-03-17 21:20 UTC (permalink / raw)
To: Bernhard Reutner-Fischer; +Cc: Joe Slater, openembedded-core
On Fri, 2015-03-13 at 23:50 +0100, Bernhard Reutner-Fischer wrote:
> On March 13, 2015 10:57:53 PM GMT+01:00, Joe Slater <jslater@windriver.com> wrote:
> >Fix logic in split_and_strip_files() to allow splitting or
> >stripping independently. We also return quickly from this
> >function if we have nothing to do. We seek the following behavior:
> >
> >Strip / Split Behavior
> >yes / yes binaries stripped; debug info and source in -dbg
> >no / yes debug info and source in -dbg
> >yes / no binaries stripped; -dbg packages empty
> >no / no -dbg packages empty (not a very useful case)
> >
> >Currently, no/yes does not work and is the same as no/no.
> >
> >Signed-off-by: Joe Slater <jslater@windriver.com>
> >---
> >meta/classes/package.bbclass | 108
> >++++++++++++++++++++++--------------------
> > 1 file changed, 57 insertions(+), 51 deletions(-)
> >
> >diff --git a/meta/classes/package.bbclass
> >b/meta/classes/package.bbclass
> >index 9f64ed7..ad8771f 100644
> >--- a/meta/classes/package.bbclass
> >+++ b/meta/classes/package.bbclass
> >@@ -812,6 +812,12 @@ python fixup_perms () {
> > }
> >
> > python split_and_strip_files () {
>
> >+ for root, dirs, files in cpath.walk(dvar):
> >+ for f in files:
> >+ file = os.path.join(root, f)
> >+ if file.endswith(".ko") and file.find("/lib/modules/") !=
> >-1:
> >+ kernmods.append(file)
> >+ continue
> >
> >+ # Skip debug files
> >+ if debugappend and file.endswith(debugappend):
> >+ continue
> >+ if debugdir and debugdir in
> >os.path.dirname(file[len(dvar):]):
> >+ continue
> >+
>
> It's a pity to first construct the files just to throw them away right afterwards.
> Maybe there are other cpath.walk spots that would benefit from file_not_endswith and dir filters?
FWIW cpath is actually a caching wrapper around os.path so there is some
amount of caching going on here behind the scenes. The current code has
been profiled and the worst hot spots worked around with the cache...
Its not perfect and I don't doubt more could be done but these pieces do
seem to help a lot. The best thing we did is avoid a lot of syscall
overhead.
Cheers,
Richard
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/1] package.bbclass: decouple splitting and stripping
2015-03-17 21:20 ` Richard Purdie
@ 2015-03-18 17:44 ` Slater, Joseph
2015-03-30 21:08 ` [PATCH] gcc-cross-canadian: Add inhibit of split as well was " Mark Hatle
0 siblings, 1 reply; 7+ messages in thread
From: Slater, Joseph @ 2015-03-18 17:44 UTC (permalink / raw)
To: Richard Purdie, Bernhard Reutner-Fischer
Cc: openembedded-core@lists.openembedded.org
I just found out that this patch will break qa for ltp packaging. The ltp recipe
inhibits stripping which used to inhibit splitting. If splitting is enabled,
there are several .debug directories in places packages.bbclass doesn't look, so
they wind up in ltp, not ltp-dbg.
It's tempting just to inhibit splitting since that was never really done before, anyhow,
but I suppose that's not the right way to fix it.
Joe
> -----Original Message-----
> From: Richard Purdie [mailto:richard.purdie@linuxfoundation.org]
> Sent: Tuesday, March 17, 2015 2:20 PM
> To: Bernhard Reutner-Fischer
> Cc: Slater, Joseph; openembedded-core@lists.openembedded.org
> Subject: Re: [OE-core] [oe-core][PATCH 1/1] package.bbclass: decouple splitting and
> stripping
>
> On Fri, 2015-03-13 at 23:50 +0100, Bernhard Reutner-Fischer wrote:
> > On March 13, 2015 10:57:53 PM GMT+01:00, Joe Slater <jslater@windriver.com> wrote:
> > >Fix logic in split_and_strip_files() to allow splitting or
> > >stripping independently. We also return quickly from this
> > >function if we have nothing to do. We seek the following behavior:
> > >
> > >Strip / Split Behavior
> > >yes / yes binaries stripped; debug info and source in -dbg
> > >no / yes debug info and source in -dbg
> > >yes / no binaries stripped; -dbg packages empty
> > >no / no -dbg packages empty (not a very useful case)
> > >
> > >Currently, no/yes does not work and is the same as no/no.
> > >
> > >Signed-off-by: Joe Slater <jslater@windriver.com>
> > >---
> > >meta/classes/package.bbclass | 108
> > >++++++++++++++++++++++--------------------
> > > 1 file changed, 57 insertions(+), 51 deletions(-)
> > >
> > >diff --git a/meta/classes/package.bbclass
> > >b/meta/classes/package.bbclass
> > >index 9f64ed7..ad8771f 100644
> > >--- a/meta/classes/package.bbclass
> > >+++ b/meta/classes/package.bbclass
> > >@@ -812,6 +812,12 @@ python fixup_perms () {
> > > }
> > >
> > > python split_and_strip_files () {
> >
> > >+ for root, dirs, files in cpath.walk(dvar):
> > >+ for f in files:
> > >+ file = os.path.join(root, f)
> > >+ if file.endswith(".ko") and file.find("/lib/modules/") !=
> > >-1:
> > >+ kernmods.append(file)
> > >+ continue
> > >
> > >+ # Skip debug files
> > >+ if debugappend and file.endswith(debugappend):
> > >+ continue
> > >+ if debugdir and debugdir in
> > >os.path.dirname(file[len(dvar):]):
> > >+ continue
> > >+
> >
> > It's a pity to first construct the files just to throw them away right afterwards.
> > Maybe there are other cpath.walk spots that would benefit from file_not_endswith and dir
> filters?
>
> FWIW cpath is actually a caching wrapper around os.path so there is some
> amount of caching going on here behind the scenes. The current code has
> been profiled and the worst hot spots worked around with the cache...
>
> Its not perfect and I don't doubt more could be done but these pieces do
> seem to help a lot. The best thing we did is avoid a lot of syscall
> overhead.
>
> Cheers,
>
> Richard
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH] gcc-cross-canadian: Add inhibit of split as well was Re: [PATCH 1/1] package.bbclass: decouple splitting and stripping
2015-03-18 17:44 ` Slater, Joseph
@ 2015-03-30 21:08 ` Mark Hatle
2015-03-30 21:45 ` Richard Purdie
0 siblings, 1 reply; 7+ messages in thread
From: Mark Hatle @ 2015-03-30 21:08 UTC (permalink / raw)
To: openembedded-core
On 3/18/15 12:44 PM, Slater, Joseph wrote:
> I just found out that this patch will break qa for ltp packaging. The ltp recipe
> inhibits stripping which used to inhibit splitting. If splitting is enabled,
> there are several .debug directories in places packages.bbclass doesn't look, so
> they wind up in ltp, not ltp-dbg.
>
> It's tempting just to inhibit splitting since that was never really done before, anyhow,
> but I suppose that's not the right way to fix it.
In addition to ltp, I recently found this breaks gcc-cross-canadian, below is a
patch that should probably be applied even if this one does not make it in.
gcc-cross-canadian: Add inhibit of split as well
With the recent change to allow strip and split of packages to be controlled
seperately, gcc-cross-canadian will sometimes fail to build properly. So in
addition to the existing inhibit strip, we also want to inhibit split.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
---
meta/recipes-devtools/gcc/gcc-cross-canadian.inc | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
b/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
index 195b465..ad4b08f 100644
--- a/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
+++ b/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
@@ -64,6 +64,7 @@ do_compile () {
}
INHIBIT_PACKAGE_STRIP = "1"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
# Having anything auto depending on gcc-cross-sdk is a really bad idea...
EXCLUDE_FROM_SHLIBS = "1"
> Joe
>
>
>> -----Original Message-----
>> From: Richard Purdie [mailto:richard.purdie@linuxfoundation.org]
>> Sent: Tuesday, March 17, 2015 2:20 PM
>> To: Bernhard Reutner-Fischer
>> Cc: Slater, Joseph; openembedded-core@lists.openembedded.org
>> Subject: Re: [OE-core] [oe-core][PATCH 1/1] package.bbclass: decouple splitting and
>> stripping
>>
>> On Fri, 2015-03-13 at 23:50 +0100, Bernhard Reutner-Fischer wrote:
>>> On March 13, 2015 10:57:53 PM GMT+01:00, Joe Slater <jslater@windriver.com> wrote:
>>>> Fix logic in split_and_strip_files() to allow splitting or
>>>> stripping independently. We also return quickly from this
>>>> function if we have nothing to do. We seek the following behavior:
>>>>
>>>> Strip / Split Behavior
>>>> yes / yes binaries stripped; debug info and source in -dbg
>>>> no / yes debug info and source in -dbg
>>>> yes / no binaries stripped; -dbg packages empty
>>>> no / no -dbg packages empty (not a very useful case)
>>>>
>>>> Currently, no/yes does not work and is the same as no/no.
>>>>
>>>> Signed-off-by: Joe Slater <jslater@windriver.com>
>>>> ---
>>>> meta/classes/package.bbclass | 108
>>>> ++++++++++++++++++++++--------------------
>>>> 1 file changed, 57 insertions(+), 51 deletions(-)
>>>>
>>>> diff --git a/meta/classes/package.bbclass
>>>> b/meta/classes/package.bbclass
>>>> index 9f64ed7..ad8771f 100644
>>>> --- a/meta/classes/package.bbclass
>>>> +++ b/meta/classes/package.bbclass
>>>> @@ -812,6 +812,12 @@ python fixup_perms () {
>>>> }
>>>>
>>>> python split_and_strip_files () {
>>>
>>>> + for root, dirs, files in cpath.walk(dvar):
>>>> + for f in files:
>>>> + file = os.path.join(root, f)
>>>> + if file.endswith(".ko") and file.find("/lib/modules/") !=
>>>> -1:
>>>> + kernmods.append(file)
>>>> + continue
>>>>
>>>> + # Skip debug files
>>>> + if debugappend and file.endswith(debugappend):
>>>> + continue
>>>> + if debugdir and debugdir in
>>>> os.path.dirname(file[len(dvar):]):
>>>> + continue
>>>> +
>>>
>>> It's a pity to first construct the files just to throw them away right afterwards.
>>> Maybe there are other cpath.walk spots that would benefit from file_not_endswith and dir
>> filters?
>>
>> FWIW cpath is actually a caching wrapper around os.path so there is some
>> amount of caching going on here behind the scenes. The current code has
>> been profiled and the worst hot spots worked around with the cache...
>>
>> Its not perfect and I don't doubt more could be done but these pieces do
>> seem to help a lot. The best thing we did is avoid a lot of syscall
>> overhead.
>>
>> Cheers,
>>
>> Richard
>
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] gcc-cross-canadian: Add inhibit of split as well was Re: [PATCH 1/1] package.bbclass: decouple splitting and stripping
2015-03-30 21:08 ` [PATCH] gcc-cross-canadian: Add inhibit of split as well was " Mark Hatle
@ 2015-03-30 21:45 ` Richard Purdie
2015-03-30 21:53 ` Mark Hatle
0 siblings, 1 reply; 7+ messages in thread
From: Richard Purdie @ 2015-03-30 21:45 UTC (permalink / raw)
To: Mark Hatle; +Cc: openembedded-core
On Mon, 2015-03-30 at 16:08 -0500, Mark Hatle wrote:
> On 3/18/15 12:44 PM, Slater, Joseph wrote:
> > I just found out that this patch will break qa for ltp packaging. The ltp recipe
> > inhibits stripping which used to inhibit splitting. If splitting is enabled,
> > there are several .debug directories in places packages.bbclass doesn't look, so
> > they wind up in ltp, not ltp-dbg.
> >
> > It's tempting just to inhibit splitting since that was never really done before, anyhow,
> > but I suppose that's not the right way to fix it.
>
> In addition to ltp, I recently found this breaks gcc-cross-canadian, below is a
> patch that should probably be applied even if this one does not make it in.
>
>
> gcc-cross-canadian: Add inhibit of split as well
>
> With the recent change to allow strip and split of packages to be controlled
> seperately, gcc-cross-canadian will sometimes fail to build properly. So in
> addition to the existing inhibit strip, we also want to inhibit split.
>
> Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
> ---
> meta/recipes-devtools/gcc/gcc-cross-canadian.inc | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
> b/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
> index 195b465..ad4b08f 100644
> --- a/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
> +++ b/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
> @@ -64,6 +64,7 @@ do_compile () {
> }
>
> INHIBIT_PACKAGE_STRIP = "1"
> +INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
>
> # Having anything auto depending on gcc-cross-sdk is a really bad idea...
> EXCLUDE_FROM_SHLIBS = "1"
Not sure which revision of fido or master this against but:
http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=92739edc9da0dea10ccc9d153226cacd6a18ee33
i.e. we fixed this the other way...
Cheers,
Richard
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] gcc-cross-canadian: Add inhibit of split as well was Re: [PATCH 1/1] package.bbclass: decouple splitting and stripping
2015-03-30 21:45 ` Richard Purdie
@ 2015-03-30 21:53 ` Mark Hatle
0 siblings, 0 replies; 7+ messages in thread
From: Mark Hatle @ 2015-03-30 21:53 UTC (permalink / raw)
To: Richard Purdie; +Cc: openembedded-core
On 3/30/15 4:45 PM, Richard Purdie wrote:
> On Mon, 2015-03-30 at 16:08 -0500, Mark Hatle wrote:
>> On 3/18/15 12:44 PM, Slater, Joseph wrote:
>>> I just found out that this patch will break qa for ltp packaging. The ltp recipe
>>> inhibits stripping which used to inhibit splitting. If splitting is enabled,
>>> there are several .debug directories in places packages.bbclass doesn't look, so
>>> they wind up in ltp, not ltp-dbg.
>>>
>>> It's tempting just to inhibit splitting since that was never really done before, anyhow,
>>> but I suppose that's not the right way to fix it.
>>
>> In addition to ltp, I recently found this breaks gcc-cross-canadian, below is a
>> patch that should probably be applied even if this one does not make it in.
>>
>>
>> gcc-cross-canadian: Add inhibit of split as well
>>
>> With the recent change to allow strip and split of packages to be controlled
>> seperately, gcc-cross-canadian will sometimes fail to build properly. So in
>> addition to the existing inhibit strip, we also want to inhibit split.
>>
>> Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
>> ---
>> meta/recipes-devtools/gcc/gcc-cross-canadian.inc | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
>> b/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
>> index 195b465..ad4b08f 100644
>> --- a/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
>> +++ b/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
>> @@ -64,6 +64,7 @@ do_compile () {
>> }
>>
>> INHIBIT_PACKAGE_STRIP = "1"
>> +INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
>>
>> # Having anything auto depending on gcc-cross-sdk is a really bad idea...
>> EXCLUDE_FROM_SHLIBS = "1"
>
> Not sure which revision of fido or master this against but:
>
> http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=92739edc9da0dea10ccc9d153226cacd6a18ee33
>
> i.e. we fixed this the other way...
You are right.. I thought I was in a different directory, but I was back on a
pull from Feb 20th. Sorry for the confusion.
--Mark
> Cheers,
>
> Richard
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2015-03-30 21:53 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-13 21:57 [PATCH 1/1] package.bbclass: decouple splitting and stripping Joe Slater
2015-03-13 22:50 ` Bernhard Reutner-Fischer
2015-03-17 21:20 ` Richard Purdie
2015-03-18 17:44 ` Slater, Joseph
2015-03-30 21:08 ` [PATCH] gcc-cross-canadian: Add inhibit of split as well was " Mark Hatle
2015-03-30 21:45 ` Richard Purdie
2015-03-30 21:53 ` Mark Hatle
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox