[lsb-discuss] How to generate binary from the source?
stewb at linux-foundation.org
Fri Aug 15 05:03:28 PDT 2008
On Fri, 15 Aug 2008, Hao Liu wrote:
> Hao Liu wrote:
> > Hi, guys,
> > I'm working on debugging a test case, which is
> > /tset/LI18NUX2K.L1/base/swscanf/T.swscanf, given by LSB.
> > According to http://bugs.linuxbase.org/show_bug.cgi?id=1558#c6 , I
> > patched the source .c file, revised scen.bld
> > and scen.exec, after these steps, I tried to generate the test case from
> > the revised source file with
> > tcc -b -s $HOME/scen.bld $*
> > I checked the build journal, it says:
> > 0|3.6-lite 15:04:45 20080815|User: vsx0 (500) TCC Start, Command line:
> > tcc -b -s scen.bld
> > 5|Linux IPv6testee.nay.redhat.com 2.6.18-92.el5 #1 SMP Tue Apr 29
> > 13:21:29 EDT 2008 ppc64|System Information
> > 20|/home/tet/test_sets/tetbuild.cfg 0|Config Start
> > 30||VSX_OPER=hliu
> > 30||VSX_ORG=Red Hat
> > 30||VSX_SYS=Unknown
> > 30||TEST_XNFS=n
> > 30||VSXDIR=/home/tet/test_sets/SRC
> > 30||PATH=/home/tet/bin:/home/tet/test_sets/BIN:/home/tet/test_sets/TESTROOT/BIN:/home/tet/bin:/opt/lsb-tet3-lite/bin:/home/tet/test_sets/BIN:/home/tet/test_sets/TESTROOT/BIN:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/tet/test_sets:/sbin/:/usr/sbin:/home/tet/test_sets/BIN
> > 30||TET_SIG_IGN=
> > 30||TET_SIG_LEAVE=
> > 30||TET_BUILD_TOOL=vbuild
> > 30||TET_OUTPUT_CAPTURE=False
> > 30||TET_API_COMPLIANT=True
> > 30||TET_PASS_TC_NAME=False
> > 30||TET_VERSION=3.6-lite
> > 40||Config End
> > 110|0 /tset/LI18NUX2K.L1/base/swscanf/T.swscanf 15:04:45|Build Start,
> > scenario ref 1-0
> > 15|0 3.6-lite 1|TCM Start
> > 400|0 0 1 15:04:45|IC Start
> > 200|0 1 15:04:45|TP Start
> > 520|0 1 00031892 1 1|/usr/bin/cc
> > -I/home/tet/test_sets/SRC/../../inc/tet3 -I/home/tet/test_sets/SRC/INC
> > -I/home/tet/test_sets/SRC/SYSINC -I. -D_XOPEN_SOURCE=500 -DUNDEF_MACROS
> > -ansi -I/usr/include/gdbm -c -o swscanf.o swscanf.c
> > 520|0 1 00031892 1 2|make: *** No rule to make target
> > `/home/tet/test_sets/SRC/../../lib/tet3/tcm.o', needed by `T.swscanf'.
> > Stop.
> > 220|0 1 1 15:04:45|FAIL
> > 410|0 0 1 15:04:45|IC End
> > 130|0 0 15:04:46|Build End, scenario ref 1-0
> > 900|15:04:46|TCC End
> > Can somebody tell me what's going wrong with my operations? Thank you.
> > All the best,
> > Hao Liu
> > _______________________________________________
> > lsb-discuss mailing list
> > lsb-discuss at lists.linux-foundation.org
> > https://lists.linux-foundation.org/mailman/listinfo/lsb-discuss
> hey, guys,
> I think it's because I miss so much .so and .o files in my
> /home/tet/lib/tet3 folder making me unable to build binary from the
> source, one of my colleague showed me there should be much more lib
> files in tt folder.
> Her folder:
> Ctcmchild.o Cthrtcm.o libthrapi_s.so tcm_m.o
> Ctcmchild_s.o Cthrtcm_s.o libthrtcm_s.a tcm_ms.o
> Ctcm.o libapi.a tcmchild.o tcm.o
> Ctcm_s.o libapi_s.so tcmchild_s.o tcm_s.o
> Cthrtcmchild.o libtcm_s.a tcmc_m.o thrtcmchild.o thrtcm.o
> Cthrtcmchild_s.o libthrapi.a tcmc_ms.o thrtcmchild_s.o
> My /home/tet/lib/tet3:
> libapi.a libapi_s.so libtcm_s.a libthrapi.a libthrapi_s.so libthrtcm_s.a
> Can somebody tell me what's going wrong here? Thank you.
I'm a little surprised if you're finding the file was not patched. This
work was done well before the 3.2 release, but I guess it depends on how
you're getting the source too, as the patch is applied at build time in
the spec file.
Also, we've pretty much done away with things building in /home/tet, and
building as root, via the rpm driven build.
But, to answer your question, shifting the directory tree to the way I'm
more accustomed to seeing the build, yes there should be more files in
lib/tet3. These are built before the tcc build of the tests itself, and in
our build, the whole thing is scripted by some expect scripts.
The tet build is handled by setup.sh in the toplevel directory.
The easiest way I've found to be able to do interactive patch work with
these tests is to check out our bzr tree and build a source rpm, and then
you can use this in your ~/rpm to be able to work with individual tests.
bzr branch http://bzr.freestandards.org/lsb/3.2/runtime-test
BZRTREES=<top of your new 3.2 tree, mine is /mnt/LSB/bzr/3.2> make
This should give you a src.rpm that you can install and build as a normal
user. In the devel tree, I've added a src_rpm target to make things
faster to get a src.rpm, I could push the same in 3.2 if that helps.
It looks like our published src.rpm is lagging the binaries:
I think Mats and I had a dsicussion about this earlier this week. We need
to get better at publishing source and keeping things in sync.
rpm -i lsb-test-core-3.2.1-1.src.rpm
rpmbuild -bc lsb-test-core.spec --define "ver 3.2.1" --define "rel 1"
grep lsbcc vmake.INSTALL > make.sh
patch, edit, etc.
sh make.sh to rebuild
TET_ROOT=`pwd` ./T.swscanf && cat tet_xres
(to run the test, doesn't work if the test needs variables provided by the harness, but works for many)
Hope this helps. You can try and grab me on IRC if you need more
The Linux Foundation
More information about the lsb-discuss