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

Ben Taylor bentaylor.solx86 at gmail.com
Sun May 1 20:31:08 UTC 2011


On Sun, May 1, 2011 at 2:57 PM, Ben Taylor <bentaylor.solx86 at gmail.com> wrote:
> 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.

I have to add /opt/kde4/lib/smokegen to LD_LIBRARY_PATH for the smokegen
binary not to fail the build.  Is this caused by
generator_{smoke,dump} being placed
in the build-kdebinding-smokegen-4.6.4/bin directory instead of lib/smokegen?

Ben



More information about the Kde-bindings mailing list