[OE-core] [oe-core][PATCH] tcl: fix INCLUDE_SPEC and LIB_SPEC

Zhenhua Luo zhenhua.luo at nxp.com
Wed Jul 6 04:08:32 UTC 2016


> -----Original Message-----
> From: Khem Raj [mailto:raj.khem at gmail.com]
> Sent: Tuesday, July 05, 2016 11:16 PM
> To: Zhenhua Luo <zhenhua.luo at nxp.com>
> Cc: Patches and discussions about the oe-core layer <openembedded-
> core at lists.openembedded.org>
> Subject: Re: [OE-core] [oe-core][PATCH] tcl: fix INCLUDE_SPEC and LIB_SPEC
> 
> On Mon, Jul 4, 2016 at 11:20 PM, Zhenhua Luo <zhenhua.luo at nxp.com> wrote:
> > TCL_INCLUDE_SPEC -I+<includedir> and TCL_LIB_SPEC -L+${libdir} break
> > the cross-compile of packages which require tcl headers and libraries.
> >
> > One example is that postgresql configure failed at the following error:
> > | checking for tcl.h... no
> > | configure: error: header file <tcl.h> is required for Tcl
> >
> > Signed-off-by: Zhenhua Luo <zhenhua.luo at nxp.com>
> > ---
> >  meta/recipes-devtools/tcltk/tcl_8.6.5.bb | 2 --
> >  1 file changed, 2 deletions(-)
> >
> > diff --git a/meta/recipes-devtools/tcltk/tcl_8.6.5.bb
> > b/meta/recipes-devtools/tcltk/tcl_8.6.5.bb
> > index 46fc8a7..d75232b 100644
> > --- a/meta/recipes-devtools/tcltk/tcl_8.6.5.bb
> > +++ b/meta/recipes-devtools/tcltk/tcl_8.6.5.bb
> > @@ -56,8 +56,6 @@ do_install() {
> >         ln -sf tclsh8.6 ${D}${bindir}/tclsh${VER}
> >         sed -i "s+-L${B}+-L${STAGING_LIBDIR}+g" tclConfig.sh
> >         sed -i "s+${WORKDIR}+${STAGING_INCDIR}+g" tclConfig.sh
> > -       sed -i "s,-L${libdir},-L=${libdir},g" tclConfig.sh
> > -       sed -i "s,-I${includedir},-I=${includedir},g" tclConfig.sh
> 
> does this now include some of your host headers in build then ?
[Luo Zhenhua-B19537] The patch does the following changes for tclConfig.sh. Without the change, tcl.h can't be found when cross building packages(e.g. postgresql) which depend on tcl. I have cross-compiled several packages(postgresql, expect, ruby, tk) that have tcl dependency and see no issue.  
	1. tmp/sysroots/qemuarm64/usr/bin/crossscripts/tclConfig.sh
	# String to pass to linker to pick up the Tcl library from its
	 # installed directory.
	-TCL_LIB_SPEC='-L=/home/bjsimics/workspace/poky-os/qemuppc/tmp/sysroots/qemuarm64/usr/lib -ltcl8.6'
	+TCL_LIB_SPEC='-L/home/bjsimics/workspace/poky-os/qemuppc/tmp/sysroots/qemuarm64/usr/lib -ltcl8.6'
 
	 # String to pass to the compiler so that an extension can
	 # find installed Tcl headers.
	-TCL_INCLUDE_SPEC='-I=/home/bjsimics/workspace/poky-os/qemuppc/tmp/sysroots/qemuarm64/usr/include/tcl8.6'
	+TCL_INCLUDE_SPEC='-I/home/bjsimics/workspace/poky-os/qemuppc/tmp/sysroots/qemuarm64/usr/include/tcl8.6'
 
	# String to pass to linker to pick up the Tcl stub library from its
	 # installed directory.
	-TCL_STUB_LIB_SPEC='-L=/home/bjsimics/workspace/poky-os/qemuppc/tmp/sysroots/qemuarm64/usr/lib -ltclstub8.6'
	+TCL_STUB_LIB_SPEC='-L/home/bjsimics/workspace/poky-os/qemuppc/tmp/sysroots/qemuarm64/usr/lib -ltclstub8.6'
 
	2. tmp/sysroots/qemuarm64/usr/lib/tclConfig.sh
	# String to pass to linker to pick up the Tcl library from its
	 # installed directory.
	-TCL_LIB_SPEC='-L=/usr/lib -ltcl8.6'
	+TCL_LIB_SPEC='-L/usr/lib -ltcl8.6'
 
	 # String to pass to the compiler so that an extension can
	 # find installed Tcl headers.
	-TCL_INCLUDE_SPEC='-I=/usr/include/tcl8.6'
	+TCL_INCLUDE_SPEC='-I/usr/include/tcl8.6'
 
	# String to pass to linker to pick up the Tcl stub library from its
	 # installed directory.
	-TCL_STUB_LIB_SPEC='-L=/usr/lib -ltclstub8.6'
	+TCL_STUB_LIB_SPEC='-L/usr/lib -ltclstub8.6'


Best Regards, 

Zhenhua

> >         install -d ${D}${bindir_crossscripts}
> >         install -m 0755 tclConfig.sh ${D}${bindir_crossscripts}
> >         install -m 0755 tclConfig.sh ${D}${libdir}
> > --
> > 2.7.4
> >
> > --
> > _______________________________________________
> > Openembedded-core mailing list
> > Openembedded-core at lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-core


More information about the Openembedded-core mailing list