On Tue, 2011-08-02 at 10:36 -0500, Kumar Gala wrote:
> On Aug 1, 2011, at 1:58 PM, Kumar Gala wrote:
> 
> > I'm trying to track down a bug related the following in 
> > gcc-configure-common.inc.  I know there is one bug in the sed line, but 
> > when I fix that I run into a second issue.  I'm trying to understand what 
> > we think the following two lines are trying to attempt:
> > 
> >        SYSTEMLIBS_DIR=`dirname ${SYSTEMLIBS}`
> >        [ "$SYSTEMLIBS_DIR" = "/" ] && SYSTEMLIBS_DIR=""
> > 
> > any ideas?
> > 
> >> From the commit log we expect something like:
> >        #define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR"/ld-linux-x86-64.so.2"
> >        and we define SYSTEMLIBS_DIR in defaults.h.
> > 
> > so its seems if SYSTEMLIBS = 'lib', that we end up with:
> >     #define SYSTEMLIBS ""
> > 
> > and thus becomes:
> >     GLIBC_DYNAMIC_LINKER64 "ld-linux-x86-64.so.2"
> > 
> > which ends up being wrong.
> > 
> > - k
> > 
> > do_configure_prepend () {
> >        # Change the default dynamic linker path, only useful for SDK, 
> > other's value
> >        # are not changed according to the SYSTEMLIBS_DIR
> >        sed -i ${S}/gcc/config/*/linux*.h -e \
> >                's#\(GLIBC_DYNAMIC_LINKER[^ ]*\)\( *"/lib.*\)#\1 
> > SYSTEMLIBS_DIR\2#'
> > 
> >        SYSTEMLIBS_DIR=`dirname ${SYSTEMLIBS}`
> >        [ "$SYSTEMLIBS_DIR" = "/" ] && SYSTEMLIBS_DIR=""
> >        # teach gcc to find correct target includedir when checking libc ssp 
> > support
> >        mkdir -p ${B}/gcc
> >        echo "NATIVE_SYSTEM_HEADER_DIR = ${SYSTEMHEADERS}" > ${B}/gcc/t-oe
> >        cat ${S}/gcc/defaults.h | grep -v "\#endif.*GCC_DEFAULTS_H" > 
> > ${B}/gcc/defaults.h.new
> >        cat >>${B}/gcc/defaults.h.new <<_EOF
> > #ifndef STANDARD_INCLUDE_DIR
> > #define STANDARD_INCLUDE_DIR "${SYSTEMHEADERS}"
> > #endif
> > #ifndef STANDARD_STARTFILE_PREFIX_1
> > #define STANDARD_STARTFILE_PREFIX_1 "${SYSTEMLIBS}"
> > #endif
> > #ifndef STANDARD_STARTFILE_PREFIX_2
> > #define STANDARD_STARTFILE_PREFIX_2 "${SYSTEMLIBS1}"
> > #endif
> > #define SYSTEMLIBS_DIR "$SYSTEMLIBS_DIR"
> > #endif /* ! GCC_DEFAULTS_H */
> > _EOF
> >        mv ${B}/gcc/defaults.h.new ${B}/gcc/defaults.h
> > }
> 
> Would really love if anyone knows what is suppose to be going on with 
> SYSTEMLIBS_DIR to chime in here.

Ah, I can help here :)

We only have one gcc source checkout with the shared work directory.
Each multilib (or sdk build) needs to customise SYSTEMLIBS depending on
its configuration. This is why its being done in the defaults.h file in
${B} instead of files in ${S}.

We likely should do the substitutions in ${S} at unpack time to make
this clearer.

Cheers,

Richard




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

Reply via email to