[Kde-bindings] Re: fixing a build on Solaris with Sun Studio 12.1 compiler

Ben Taylor bentaylor.solx86 at gmail.com
Sun May 1 18:57:06 UTC 2011


On Sat, Apr 30, 2011 at 5:18 PM, Arno Rehn <arno at arnorehn.de> wrote:
> On Saturday 30 April 2011 22:55:50 Ben Taylor wrote:
>> I am building KDE through a build tool on Solaris 10 with Sun Studio
>> 12.1 compiler.
>> (the same problem I'm reporting is also apparent on Open Solaris variants,
>> such as Oracle Solaris 11 Express and Open Indiana).
>>
>> I get this error when building KDE-bindings:
>>
>> Generating smokedata.cpp, x_1.cpp, x_2.cpp, x_3.cpp, x_4.cpp, x_5.cpp,
>> x_6.cpp, x_7.cpp, x_8.cpp, x_9.cpp, x_10.cpp, x_11.cpp, x_12.cpp,
>> x_13.cpp, x_14.cpp, x_15.cpp, x_16.cpp, x_17.cpp, x_18.cpp, x_19.cpp,
>> x_20.cpp
>> cd
>> /export/home/bent/k460-dev2/BUILD/kdebindings-4.6.2/build-kdebindings-4.6.
>> 2/smoke/qt/qtcore &&
>> /export/home/bent/k460-dev2/BUILD/kdebindings-4.6.2/build-kdebindings-4.6.
>> 2/generator/bin/smokegen -config
>> /export/home/bent/k460-dev2/BUILD/kdebindings-4.6.2/build-kdebindings-4.6.
>> 2/smoke/qt/qtcore/config.xml -smokeconfig
>> /export/home/bent/k460-dev2/BUILD/kdebindings-4.6.2/smoke/qt/qtcore/smokec
>> onfig.xml --
>> /export/home/bent/k460-dev2/BUILD/kdebindings-4.6.2/smoke/qt/qtcore/qtcore
>> _includes.h "Cannot load library generator_smoke: (ld.so.1: smokegen:
>> fatal:
>> libgenerator_smoke.so: open failed: No such file or directory)"
>>
>> I have tried to tweak the various CMakeList.txt files under generatr to try
>> and do the right thing, but my cmake foo is not strong enough.
>>
>> Howver, IFF if set the LD_LIBRARY_PATH in the make line as this:
>>
>> env
>> LD_LIBRARY_PATH=/export/home/bent/k460-dev2/BUILD/kdebindings-4.6.2/build-
>> kdebindings-4.6.2/generator/bin make
>>
>> it will continue building, as shown below:
>>
>> [  6%] Generating smokedata.cpp, x_1.cpp, x_2.cpp, x_3.cpp, x_4.cpp,
>> x_5.cpp, x_6.cpp, x_7.cpp, x_8.cpp, x_9.cpp, x_10.cpp, x_11.cpp,
>> x_12.cpp, x_13.cpp, x_14.cpp, x_15.cpp, x_16.cpp, x_17.cpp, x_18.cpp,
>> x_19.cpp, x_20.cpp
>> using generator "generator_smoke.so"
>> parsing
>> "/export/home/bent/k460-dev2/BUILD/kdebindings-4.6.2/smoke/qt/qtcore/qtcor
>> e_includes.h" Generating SMOKE sources...
>> preparing SMOKE data [qtcore]
>> writing out smokedata.cpp [qtcore]
>> writing out x_*.cpp [qtcore]
>> Done.
>> Scanning dependencies of target smokeqtcore
>> [  6%] Building CXX object
>> smoke/qt/qtcore/CMakeFiles/smokeqtcore.dir/smokedata.o
>>
>> Anyone know what the proper cmake directive would be to make this work
>> without the
>> manual step of compiling with the LD_LIBRARY_PATH set?
> Normally this should just work, because smokegen should have a proper rpath
> set. I don't know if this works on solaris though.
> This won't be a problem in 4.7 anymore because smokegen, smokeqt and smokekde
> are now all seperate projects. So we won't be running smokegen from within the
> build anymore.
> In the meantime just use your LD_LIBRARY_PATH hack, I'd say.

Well, something is still not right. I started building out of git, and
the same error
occurs using /opt/kde4/bin/smokegen.  Seems that some additional linkage
path needs to be in the path.  Also, by default, it looks like the
RPATH is being
deleted from smokegen and smokeapi.  I've tried fooling with the CMakeLists.txt
to tweak that to not remove the RPATH, but no success yet....

I was able to successfully build KDEbindings-smokeqt by using the
LD_LIBRARY_PATH
hack, but that's really not appropriate for "production", since it can't be used
without the LD_LIBRARY_PATH hack.

Ben



More information about the Kde-bindings mailing list