trinity-devel@lists.pearsoncomputing.net

Message: previous - next
Month: January 2014

Re: [trinity-devel] [PATCH] Re: [trinity-devel] tdebase FTBFS - No rule to make target '/opt/trinity/lib/libtdefakes_nonpic.a'

From: "David C. Rankin" <drankinatty@...>
Date: Mon, 20 Jan 2014 14:18:03 -0600
On 01/20/2014 01:21 PM, Sl�vek Banko wrote:
> On Monday 20 of January 2014 20:13:02 David C. Rankin wrote:
>> On 01/20/2014 11:25 AM, Sl�vek Banko wrote:
>>> How did you come to the conclusion that building ksysguardd depends on
>>> WITH_SENSORS? I do not see any such condition in CMake files.
>>
>> (1) Because ksysguard is the wonderful monitoring package;
>> (2) that uses system hardware sensors;
>> (3) I've never run into this missing file before; and
>> (4) this was the first time I have ever built WITH_SENSORS.
>>
>> Elementary my dear Mr. Watson...
>>
>>
>> Oh,
>>
>>   Also, in the CMakeLists.txt file where I had to fix this screwy filename,
>> I found this....
>>
>> ##### ksysguardd (executable) ###################
>>
>> tde_add_executable( ksysguardd AUTOMOC
>>   SOURCES Command.c conf.c ksysguardd.c PWUIDCache.c
>>   LINK ccont-static ksysguardd-static ${TDE_LIB_DIR}/libtdefakes_nonpic.a
>>     ${SENSORS_LIBRARIES}
>>     ^^^^^^^^^^^^^^^^^^^^
>>   DESTINATION ${BIN_INSTALL_DIR}
>> )
> 
> If WITH_SENSORS is OFF, variable ${SENSORS_LIBRARIES} is empty and ksysguardd 
> is built without problems, just without lm_sensors support. It's not option 
> without which it would be impossible to build ksysguardd.
> 
> Slavek
> 

I'm trying to nail this problem down at the moment and I'm not sure why the '.a'
files are not in my install. The files were generated and made part of the
package when tdelibs was built. From the tdelibs build log:

13:55 phoinix:/dat_e/tde/log> grep libtdefake tde-tdelibs.log
Linking C shared library libtdefakes.so
/usr/bin/cc  -fPIC -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector
--param=ssp-buffer-size=4  -Wl,--no-undefined -shared
-Wl,-soname,libtdefakes.so.14 -o libtdefakes.so.14.0.0
CMakeFiles/tdefakes-shared.dir/fakes.c.o
CMakeFiles/tdefakes-shared.dir/vsnprintf.c.o  -L/opt/tqt3/lib
cd /build/tde-tdelibs/src/build/tdecore && /usr/bin/cmake -E
cmake_symlink_library libtdefakes.so.14.0.0 libtdefakes.so.14 libtdefakes.so
Linking C static library libtdefakes_nonpic.a
/usr/bin/ar cr libtdefakes_nonpic.a
CMakeFiles/tdefakes_nonpic-static.dir/fakes.c.o
CMakeFiles/tdefakes_nonpic-static.dir/vsnprintf.c.o
/usr/bin/ranlib libtdefakes_nonpic.a
Linking C static library libtdefakes_pic.a
/usr/bin/ar cr libtdefakes_pic.a  CMakeFiles/tdefakes_pic-static.dir/fakes.c.o
CMakeFiles/tdefakes_pic-static.dir/vsnprintf.c.o
/usr/bin/ranlib libtdefakes_pic.a
/usr/bin/c++   -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector
--param=ssp-buffer-size=4   -DQT_NO_ASCII_CAST -DQT_CLEAN_NAMESPACE -DQT_NO_STL
-DQT_NO_COMPAT -DQT_NO_TRANSLATION -DQT_THREAD_SUPPORT -D_REENTRANT -include
tqt.h -I/opt/tqt3/include -I/usr/include/tqt -DQT_NO_ASCII_CAST
-DQT_CLEAN_NAMESPACE -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION
-DQT_THREAD_SUPPORT -D_REENTRANT -include tqt.h
-Wl,-O1,--sort-common,--as-needed,-z,relro
CMakeFiles/tdestartupconfig.dir/tdestartupconfig.cpp.o  -o tdestartupconfig
-L/opt/tqt3/lib -rdynamic ../tdecore/libtdefakes.so.14.0.0 -ltqt -ltqt-mt
-Wl,-rpath,/opt/tqt3/lib:/build/tde-tdelibs/src/build/tdecore:
/usr/bin/cc  -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector
--param=ssp-buffer-size=4    -Wl,-O1,--sort-common,--as-needed,-z,relro
CMakeFiles/cupsdoprint.dir/cupsdoprint.c.o  -o cupsdoprint  -L/opt/tqt3/lib
-rdynamic ../../tdecore/libtdefakes.so.14.0.0 -lcups
-Wl,-rpath,/opt/tqt3/lib:/build/tde-tdelibs/src/build/tdecore:
/usr/bin/cc  -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector
--param=ssp-buffer-size=4    -Wl,-O1,--sort-common,--as-needed,-z,relro
CMakeFiles/make_driver_db_cups.dir/make_driver_db_cups.c.o  -o
make_driver_db_cups  -L/opt/tqt3/lib -rdynamic ../libdriverparse.a
../../tdecore/libtdefakes.so.14.0.0 -lz -ldl
-Wl,-rpath,/opt/tqt3/lib:/build/tde-tdelibs/src/build/tdecore:
/usr/bin/cc  -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector
--param=ssp-buffer-size=4    -Wl,-O1,--sort-common,--as-needed,-z,relro
CMakeFiles/make_driver_db_lpr.dir/make_driver_db_lpr.c.o  -o make_driver_db_lpr
 -L/opt/tqt3/lib -rdynamic ../libdriverparse.a
../../tdecore/libtdefakes.so.14.0.0 -ldl
-Wl,-rpath,/opt/tqt3/lib:/build/tde-tdelibs/src/build/tdecore:
-- Installing:
/build/tde-tdelibs/pkg/tde-tdelibs/opt/trinity/lib/libtdefakes_nonpic.a
-- Installing: /build/tde-tdelibs/pkg/tde-tdelibs/opt/trinity/lib/libtdefakes_pic.a
-- Installing:
/build/tde-tdelibs/pkg/tde-tdelibs/opt/trinity/lib/libtdefakes.so.14.0.0
-- Installing: /build/tde-tdelibs/pkg/tde-tdelibs/opt/trinity/lib/libtdefakes.so.14
-- Installing: /build/tde-tdelibs/pkg/tde-tdelibs/opt/trinity/lib/libtdefakes.so
-- Installing: /build/tde-tdelibs/pkg/tde-tdelibs/opt/trinity/lib/libtdefakes.la

  So the libtdefakes_nonpic.a and libtdefakes_pic.a were 'installed' by 'make
install', but were later somehow stripped in packaging. Now it is NOT something
I did intentionally because my package() function for tdelibs is:

package() {
  msg "Packaging - $pkgname-$pkgver"
  cd ${srcdir}/build

  make -j1 DESTDIR="$pkgdir" install
}

  That's it! So if the '.a' files are gone, then Arch's packaging software
automatically strips them internally. That is what I'm trying to track down.

  What is the contents of your libtdefakes_nonpic.a and libtdefakes_pic.a files?

-- 
David C. Rankin, J.D.,P.E.