On Mon, Sep 30, 2013 at 3:14 PM, Robert Schweikert <rjschwei@suse.com> wrote:
On 09/30/2013 02:26 PM, Greg Freemyer wrote:
I maintain libprelude and it is now failing in factory. I assume a new gcc compiler went in recently. (It still builds fine in the 13.1 branch.)
A local build log has these lines which I think are the critical ones:
============================= [ 191s] Making all in lua [ 191s] make[3]: Entering directory `/home/abuild/rpmbuild/BUILD/libprelude-1.0.1/bindings/lua' [ 191s] /usr/bin/swig -c++ -I../../bindings -I../../bindings/c++/include -I../../src/include -I../../src/libprelude-error -lua -o PreludeEasy.cxx libpreludecpp.i [ 191s] SWIG:1: Warning 125: Use of the include path to find the input file is deprecated and will not work with ccache. Please include the path when specifying the input file. [ 191s] ../../bindings/c++/include/prelude-error.hxx:48: Warning 503: Can't wrap 'operator const char*' unless renamed to a valid identifier. [ 191s] ../../bindings/c++/include/prelude-error.hxx:49: Warning 503: Can't wrap 'operator const std::string' unless renamed to a valid identifier. [ 191s] /bin/sh ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../src/include -I../../src/include -I../../src/libprelude-error -I../../bindings/c++/include -I../../libmissing -I../../libmissing -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -c -o PreludeEasy.lo PreludeEasy.cxx [ 191s] libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../src/include -I../../src/include -I../../src/libprelude-error -I../../bindings/c++/include -I../../libmissing -I../../libmissing -fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -c PreludeEasy.cxx -fPIC -DPIC -o .libs/PreludeEasy.o [ 192s] PreludeEasy.cxx: In function 'int _wrap_IDMEFValue_Clone(lua_State*)': [ 192s] PreludeEasy.cxx:7154:9: warning: unused variable 'ret' [-Wunused-variable] [ 192s] int ret; [ 192s] ^ [ 192s] PreludeEasy.cxx: In function 'int _wrap_IDMEFPath_Get(lua_State*)': [ 192s] PreludeEasy.cxx:7376:9: warning: unused variable 'ret' [-Wunused-variable] [ 192s] int ret; [ 192s] ^ [ 192s] PreludeEasy.cxx: In function 'int _wrap_IDMEF_Get(lua_State*)': [ 192s] PreludeEasy.cxx:10519:9: warning: unused variable 'ret' [-Wunused-variable] [ 192s] int ret; [ 192s] ^ [ 192s] PreludeEasy.cxx: In function 'void luaopen_PreludeEasy_user(lua_State*)': [ 192s] PreludeEasy.cxx:11337:53: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] [ 192s] if ( idx >= ((sizeof(argv) / sizeof(char *)) - 1) ) [ 192s] ^ [ 192s] PreludeEasy.cxx: In function 'int SWIG_Lua_namespace_register(lua_State*, swig_lua_namespace*)': [ 192s] PreludeEasy.cxx:1278:1: warning: control reaches end of non-void function [-Wreturn-type] [ 192s] } [ 192s] ^ [ 192s] PreludeEasy.cxx: In function 'int SWIG_Lua_add_namespace_details(lua_State*, swig_lua_namespace*)': [ 192s] PreludeEasy.cxx:1248:1: warning: control reaches end of non-void function [-Wreturn-type] [ 192s] } [ 192s] ^ ==================
The last 2 warnings are causing the build to fail (or so I believe).
So you can see the compile is in the directory bindings/lua and the file PreludeEasy.cxx is being compiled.
My confusion is when I go look in the source file at lines 1248 and 1278 I have:
1248: SWIGINTERN void SWIG_Lua_class_register(lua_State* L,swig_lua_class* clss)
1278: lua_rawset(L,-3); /* metatable into registry */
Neither of those look like they correspond to the warnings. Further if I search the source tree for SWIG_Lua_namespace_register or SWIG_Lua_add_namespace_details I don't find either one.
Hmm, I just tried to build the package locally, followed by
-> osc chroot x86_64 -> cd /home/abuild/rpmbuild/BUILD/libprelude-1.0.1/ -> find . -type f | xargs grep namespace_register ./bindings/lua/PreludeEasy.cxx:SWIGINTERN int SWIG_Lua_namespace_register(lua_State* L, swig_lua_namespace* ns) ./bindings/lua/PreludeEasy.cxx: SWIG_Lua_namespace_register(L,&clss->cls_static); -> find . -type f | xargs grep add_namespace_details./bindings/lua/PreludeEasy.cxx:SWIGINTERN int SWIG_Lua_add_namespace_details(lua_State* L, swig_lua_namespace* ns) ./bindings/lua/PreludeEasy.cxx: SWIG_Lua_add_namespace_details(L, &clss->cls_static);
Thus both exist, maybe you have stale data in your build tree if you cannot find them? Shouldn't be I know, but....
Anyway, taking a look at PreludeEasy.cxx I find on line 1223 the following declaration:
SWIGINTERN int SWIG_Lua_add_namespace_details(lua_State* L, swig_lua_namespace* ns)
The function ends on line 1248 with } but there is no return statement in the code that woudl return an int as the declaration requires.
Looks like something is going wrong with your local build. The error produced are consistent with the broken code in my build tree.
From the generated code it is not obvious what should be returned, thus you have to do some digging through the source code that is used by SWIG to generate this wrapper.
HTH, Robert
It helped a lot. I was only looking at the expanded tarball, not at the chroot post build. To be honest I rarely look at the chroot environment post build. What's the best way to look at files in the chroot. I did not even have vi available, so I had use more and then cut&paste. Not much of a solution. Thanks again Greg -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org