All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Hatle <mark.hatle@windriver.com>
To: Saul Wold <sgw@linux.intel.com>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 21/22] pseudo: Rework target, native and nativesdk pseudo intergration
Date: Thu, 6 Dec 2012 11:28:58 -0600	[thread overview]
Message-ID: <50C0D5DA.2030200@windriver.com> (raw)
In-Reply-To: <50C0D41F.1050706@linux.intel.com>

On 12/6/12 11:21 AM, Saul Wold wrote:
> On 12/06/2012 09:03 AM, Mark Hatle wrote:
>> On 12/5/12 11:06 PM, Saul Wold wrote:
>>> On 12/04/2012 09:14 AM, Mark Hatle wrote:
>>>> Pseudo was not building and installing properly for systems where
>>>> baselib
>>>> was not 'lib'.  This change reworks the three scenerios to work
>>>> properly.
>>>>
>>>> Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
>>>> ---
>>>>     meta/recipes-devtools/pseudo/pseudo.inc      |   58
>>>> ++++++++++++-------------
>>>>     meta/recipes-devtools/pseudo/pseudo_1.4.1.bb |    2 +-
>>>>     meta/recipes-devtools/pseudo/pseudo_git.bb   |    2 +-
>>>>     3 files changed, 30 insertions(+), 32 deletions(-)
>>>>
>>>> diff --git a/meta/recipes-devtools/pseudo/pseudo.inc
>>>> b/meta/recipes-devtools/pseudo/pseudo.inc
>>>> index 98f706c..8dc7d72 100644
>>>> --- a/meta/recipes-devtools/pseudo/pseudo.inc
>>>> +++ b/meta/recipes-devtools/pseudo/pseudo.inc
>>>> @@ -13,34 +13,28 @@ SRC_URI_append_class-nativesdk = "
>>>> file://symver.patch"
>>>>
>>>>     SRC_URI_append_class-native = " file://symver.patch"
>>>>
>>>> -FILES_${PN} = "${libdir}/pseudo/lib*/libpseudo.so ${bindir}/*
>>>> ${localstatedir}/pseudo ${prefix}/var/pseudo"
>>>> -FILES_${PN}-dbg += "${libdir}/pseudo/lib*/.debug"
>>>> +FILES_${PN} = "${prefix}/lib/pseudo/lib*/libpseudo.so ${bindir}/*
>>>> ${localstatedir}/pseudo ${prefix}/var/pseudo"
>>>> +FILES_${PN}-dbg += "${prefix}/lib/pseudo/lib*/.debug"
>>>>     PROVIDES += "virtual/fakeroot"
>>>>
>>>>     MAKEOPTS = ""
>>>>
>>>>     inherit siteinfo
>>>>
>>>> -do_configure () {
>>>> -    :
>>>> -}
>>>> -
>>>> -NO32LIBS ??= "1"
>>>> -
>>>> -# Compile for the local machine arch...
>>>> -do_compile () {
>>>> +do_configure_class-target () {
>>>>         if [ "${SITEINFO_BITS}" = "64" ]; then
>>>> -      ${S}/configure --prefix=${prefix}
>>>> --libdir=${prefix}/lib/pseudo/lib${SITEINFO_BITS}
>>>> --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix}
>>>> --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --enable-static-sqlite
>>>> --without-rpath
>>>> +        mylibdir=${prefix}/lib/pseudo/lib${SITEINFO_BITS}
>>>>         else
>>>> -      ${S}/configure --prefix=${prefix}
>>>> --libdir=${prefix}/lib/pseudo/lib
>>>> --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix}
>>>> --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --enable-static-sqlite
>>>> --without-rpath
>>>> +        mylibdir=${prefix}/lib/pseudo/lib
>>>>         fi
>>>> -    oe_runmake ${MAKEOPTS}
>>>> +    ${S}/configure --prefix=${prefix} --libdir=$mylibdir
>>>> --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --without-rpath
>>>
>>> You seem to have dropped the --with-sqlite and now it does not find
>>> sqlite3.h for the target build as can be seen in the build appliance
>>> failure.
>>
>> It should be sourcing it from the compiler with a #include.  It was
>> working on all of my test builds.
>>
> Not that I am aware of, the configure script defaults to /usr, is it
> possible you have a host contamination issue with sqlite3 installed on
> your machine?
>
>> But either way, there are two bugs here.. the first is pseudo isn't
>> building for the target -- it wasn't before either.
>>
> It has been building on the target in the past since we need it for the
> Build Appliance and it builds in world.

Enable multilibs, pseudo (target) will no longer build.  The integration is hard 
coded currently to be looking for things in the 'lib' directory, which may not 
exist.  In otherwords, it is broken -- and the autobuilds are missing any 
build-time tests for multilibs at this point.

>> But the real issue is -why on earth- are we building pseudo at all for
>> the target.  It serves no purpose that I am aware of.
>>
> Build Appliance needs it.

People keep telling me this, but honestly I can't figure out why it's needed. 
What actually uses pseudo in the build appliance?

I can easily build a system today, boot it, download OE-Core/Bitbake (or Poky) 
and build it on that system.  It's that the purpose of the build appliance?  Why 
is it needed?

>> I'd prefer if the fix was simply to disable pseudo for target-class
>> builds, and only build it for -native and -nativesdk cases.
>>
> Not really an option
>
>> Just drop this patch for now -- we can focus on fixing it a different
>> way if target builds of pseudo are needed for some reason.
>>
> consider it dropped.
>
> Sau!
>
>> --Mark
>>
>>> http://autobuilder.yoctoproject.org:8010/builders/build-appliance/builds/154/steps/shell_46/logs/stdio
>>>
>>>
>>> Sau!
>>>
>>>>     }
>>>>
>>>> -# Two below are the same
>>>> +NO32LIBS ??= "1"
>>>> +
>>>>     # If necessary compile for the alternative machine arch.  This is
>>>> only
>>>>     # necessary in a native build.
>>>> -do_compile_prepend_class-native () {
>>>> +do_compile_native() {
>>>>         if [ "${SITEINFO_BITS}" = "64" -a -e
>>>> "/usr/include/gnu/stubs-32.h" -a "${PN}" = "pseudo-native" -a
>>>> "${NO32LIBS}" != "1" ]; then
>>>>             # We need the 32-bit libpseudo on a 64-bit machine...
>>>>                     # ... and we really, really, hope that the native
>>>> host is
>>>> @@ -56,18 +50,20 @@ do_compile_prepend_class-native () {
>>>>             # prevent it from removing the lib, but remove everything
>>>> else
>>>>             make 'LIB=foo' ${MAKEOPTS} distclean
>>>>         fi
>>>> +    if [ "${SITEINFO_BITS}" = "64" ]; then
>>>> +      ${S}/configure --prefix=${prefix}
>>>> --libdir=${prefix}/lib/pseudo/lib${SITEINFO_BITS}
>>>> --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix}
>>>> --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --enable-static-sqlite
>>>> --without-rpath
>>>> +    else
>>>> +      ${S}/configure --prefix=${prefix}
>>>> --libdir=${prefix}/lib/pseudo/lib
>>>> --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix}
>>>> --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --enable-static-sqlite
>>>> --without-rpath
>>>> +    fi
>>>> +    oe_runmake ${MAKEOPTS}
>>>>     }
>>>>
>>>> -do_compile_prepend_class-nativesdk () {
>>>> -    if [ "${SITEINFO_BITS}" = "64" -a -e
>>>> "/usr/include/gnu/stubs-32.h" -a "${PN}" = "pseudo-native" -a
>>>> "${NO32LIBS}" != "1" ]; then
>>>> -        # We need the 32-bit libpseudo on a 64-bit machine...
>>>> -                # ... and we really, really, hope that the native
>>>> host is
>>>> -                # x86, or else --bits may not work.
>>>> -        ./configure --prefix=${prefix}
>>>> --libdir=${prefix}/lib/pseudo/lib
>>>> --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --bits=32
>>>> --without-rpath
>>>> -        oe_runmake ${MAKEOPTS} libpseudo
>>>> -        # prevent it from removing the lib, but remove everything else
>>>> -        make 'LIB=foo' ${MAKEOPTS} distclean
>>>> -    fi
>>>> +do_compile_class-native () {
>>>> +    do_compile_native
>>>> +}
>>>> +
>>>> +do_compile_class-nativesdk () {
>>>> +    do_compile_native
>>>>     }
>>>>
>>>>     do_install () {
>>>> @@ -77,18 +73,20 @@ do_install () {
>>>>     # Two below are the same
>>>>     # If necessary install for the alternative machine arch.  This is
>>>> only
>>>>     # necessary in a native build.
>>>> -do_install_append_class-native () {
>>>> +do_install_native () {
>>>>         if [ "${SITEINFO_BITS}" = "64" -a -e
>>>> "/usr/include/gnu/stubs-32.h" -a "${PN}" = "pseudo-native" -a
>>>> "${NO32LIBS}" != "1" ]; then
>>>>             mkdir -p ${D}${prefix}/lib/pseudo/lib
>>>>             cp lib/pseudo/lib/libpseudo.so ${D}${prefix}/lib/pseudo/lib/.
>>>>         fi
>>>> +    oe_runmake 'DESTDIR=${D}' ${MAKEOPTS}
>>>> 'LIB=lib/pseudo/lib$(MARK64)' install
>>>> +}
>>>> +
>>>> +do_install_class-native () {
>>>> +    do_install_native
>>>>     }
>>>>
>>>>     do_install_append_class-nativesdk () {
>>>> -    if [ "${SITEINFO_BITS}" = "64" -a -e
>>>> "/usr/include/gnu/stubs-32.h" -a "${PN}" = "pseudo-native" -a
>>>> "${NO32LIBS}" != "1" ]; then
>>>> -        mkdir -p ${D}${prefix}/lib/pseudo/lib
>>>> -        cp lib/pseudo/lib/libpseudo.so ${D}${prefix}/lib/pseudo/lib/.
>>>> -    fi
>>>> +    do_install_native
>>>>     }
>>>>
>>>>     BBCLASSEXTEND = "native nativesdk"
>>>> diff --git a/meta/recipes-devtools/pseudo/pseudo_1.4.1.bb
>>>> b/meta/recipes-devtools/pseudo/pseudo_1.4.1.bb
>>>> index 70fe9c0..8367a34 100644
>>>> --- a/meta/recipes-devtools/pseudo/pseudo_1.4.1.bb
>>>> +++ b/meta/recipes-devtools/pseudo/pseudo_1.4.1.bb
>>>> @@ -1,6 +1,6 @@
>>>>     require pseudo.inc
>>>>
>>>> -PR = "r13"
>>>> +PR = "r14"
>>>>
>>>>     SRC_URI =
>>>> "http://www.yoctoproject.org/downloads/${BPN}/${BPN}-${PV}.tar.bz2"
>>>>
>>>> diff --git a/meta/recipes-devtools/pseudo/pseudo_git.bb
>>>> b/meta/recipes-devtools/pseudo/pseudo_git.bb
>>>> index e394ffb..c8ec5ad 100644
>>>> --- a/meta/recipes-devtools/pseudo/pseudo_git.bb
>>>> +++ b/meta/recipes-devtools/pseudo/pseudo_git.bb
>>>> @@ -2,7 +2,7 @@ require pseudo.inc
>>>>
>>>>     SRCREV = "398a264490713c912b4ce465251a8a82a7905f45"
>>>>     PV = "1.4.1+git${SRCPV}"
>>>> -PR = "r28"
>>>> +PR = "r29"
>>>>
>>>>     DEFAULT_PREFERENCE = "-1"
>>>>
>>>>
>>
>>
>>




  reply	other threads:[~2012-12-06 17:43 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-04 17:14 [PATCH 00/22] Misc fixes Mark Hatle
2012-12-04 17:14 ` [PATCH 01/22] cpio: Split RMT from cpio Mark Hatle
2012-12-04 17:14 ` [PATCH 02/22] tar: Split RMT from tar Mark Hatle
2012-12-04 17:14 ` [PATCH 03/22] update-alternatives.bbclass: Add missing runtime dependency Mark Hatle
2012-12-04 17:04   ` Martin Jansa
2012-12-04 17:34     ` Mark Hatle
2012-12-04 20:46       ` Richard Purdie
2012-12-05  1:47         ` Mark Hatle
2012-12-05  9:17           ` Richard Purdie
2012-12-04 17:14 ` [PATCH 04/22] package_rpm.bbclass: Add the runtime dependencies to the pre/post scriptlets Mark Hatle
2012-12-04 17:14 ` [PATCH 05/22] rpm: enable _openall_before_chroot by default Mark Hatle
2012-12-04 17:14 ` [PATCH 06/22] rpm: Move rpmdb_loadcvt from base to dev package Mark Hatle
2012-12-04 17:14 ` [PATCH 07/22] rpm: Fix rpm relocation macro usage Mark Hatle
2012-12-04 17:14 ` [PATCH 08/22] rpm: Fixup platform matching code Mark Hatle
2012-12-04 17:14 ` [PATCH 09/22] rpm: Fix Upstream-Status fields Mark Hatle
2012-12-04 17:14 ` [PATCH 10/22] createrepo: implement support for recommends Mark Hatle
2012-12-04 17:14 ` [PATCH 11/22] python-smartpm: add " Mark Hatle
2012-12-04 17:14 ` [PATCH 12/22] python-smartpm: style fixes Mark Hatle
2012-12-04 17:14 ` [PATCH 13/22] python-smartpm: fix package metadata not being read from rpm-md feeds Mark Hatle
2012-12-04 17:14 ` [PATCH 14/22] python-smartpm: don't create /var/tmp on every rpm database open Mark Hatle
2012-12-04 17:14 ` [PATCH 15/22] python-smartpm: support nolinktos and noparentdirs rpm options Mark Hatle
2012-12-04 17:14 ` [PATCH 16/22] python-smartpm: allow setting arbitrary macros in smart config Mark Hatle
2012-12-04 17:14 ` [PATCH 17/22] python-smartpm: Fix incorrect comparison arguments Mark Hatle
2012-12-04 17:14 ` [PATCH 18/22] shadow: add runtime dependency on base-passwd Mark Hatle
2012-12-04 17:14 ` [PATCH 19/22] package_deb: Dependencies with a ( or ) in them are invalid in debs Mark Hatle
2012-12-04 17:14 ` [PATCH 20/22] pkgconfig: Add a manual dependency of pkgconfig(pkg-config) Mark Hatle
2012-12-06 13:16   ` Paul Eggleton
2012-12-06 17:13     ` Mark Hatle
2012-12-06 13:30   ` Otavio Salvador
2012-12-06 17:12     ` Mark Hatle
2012-12-04 17:14 ` [PATCH 21/22] pseudo: Rework target, native and nativesdk pseudo intergration Mark Hatle
2012-12-06  5:06   ` Saul Wold
2012-12-06 17:03     ` Mark Hatle
2012-12-06 17:21       ` Saul Wold
2012-12-06 17:28         ` Mark Hatle [this message]
2012-12-06 17:39           ` Saul Wold
2012-12-04 17:14 ` [PATCH 22/22] license.bbclass: Avoid grep error message Mark Hatle

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50C0D5DA.2030200@windriver.com \
    --to=mark.hatle@windriver.com \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=sgw@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.