Compile on Opensuse
#1
Ok first the basics.

I am compiling XBMC on Opensuse and it works. So no problem there Smile

So I did just build xbmc-9.10 svn release 20631 abd it works on my laptop.

Laptop: Opensuse 11.1 if needed I can give all the libraries Smile

But I also want to get it working on the buildserver. And the buildserver does a lot more checks. So I decided to paste all the errors/ warnings here because maybe it could help the development.

With regards,

--------------------------------------------------------------------------------------
Gcc output buildserver checks. Shortened to get to 10000 Wink

xbmc-9.10.20631-1.1
... running 01-check-debuginfo
... testing for empty debuginfo packages
... running 02-check-gcc-output
... testing for serious compiler warnings
(using /usr/lib/build/checks-data/check_gcc_output)
(using //.build.log)

I: A function overflows or underflows an array access. This could be a real error,
but occasionaly this condition is also misdetected due to loop unrolling or strange pointer
handling. So this is warning only, please review.
W: xbmc arraysubscript libavcodec/h264.c:7617
W: xbmc arraysubscript libavutil/aes.c:133, 187
W: xbmc arraysubscript unpack3.c:156, 160

I: File is compiled without RPM_OPT_FLAGS
W: xbmc no-rpm-opt-flags <cmdline>:exports_python_linux.cpp, wrapper.c, bits.c, cfft.c, decoder.c, drc.c, drm_dec.c, error.c, filtbank.c, ic_predict.c, is.c, lt_predict.c, mdct.c, mp4.c, ms.c, output.c, pns.c, ps_dec.c, ps_syntax.c, pulse.c, specrec.c, tns.c, hcr.c, huffman.c, rvlc.c, ssr.c, ssr_fb.c, ssr_ipqf.c, common.c, sbr_dct.c, sbr_e_nf.c, sbr_fbt.c, sbr_hfadj.c, sbr_hfgen.c, sbr_huff.c, sbr_qmf.c, sbr_syntax.c, sbr_tf_grid.c, sbr_dec.c, mp4ff.c, mp4atom.c, mp4meta.c, mp4sample.c, mp4util.c, mp4tagupdate.c, drms.c, main.c, audio.c, ../common/faad/getopt.c, version.c, fixed.c, bit.c, timer.c, stream.c, frame.c, s ynth.c, layer12.c, layer3.c, bitstream.c, imdct.c, bit_allocate.c, parse.c, downmix.c, audio_out.c, float2s16.c,

etc etc

I: Program is likely to break with new gcc. Try -fno-strict-aliasing.
W: xbmc strict-aliasing-punning /usr/src/packages/BUILD/xbmc-9.10.20631/xbmc/cores/dvdplayer/Codecs/libdvd/libdvdread/src/nav_print.c:41
W: xbmc strict-aliasing-punning DateTime.cpp:582
W: xbmc strict-aliasing-punning FileItem.cpp:405, 1624, 1625, 1626, 1633
W: xbmc strict-aliasing-punning GUIListItem.cpp:228
W: xbmc strict-aliasing-punning LockFree.cpp:47, 65, 189, 199, 210, 220, 238, 250, 261
W: xbmc strict-aliasing-punning Temperature.cpp:390
W: xbmc strict-aliasing-punning bitstream.c:58
W: xbmc strict-aliasing-punning liba52/bitstream.c:55
W: xbmc strict-aliasing-punning sha.c:71
W: xbmc strict-aliasing-punning xbmcguimodule.cpp:174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192
W: xbmc strict-aliasing-punning xbmcmodule.cpp:894, 895, 896, 897, 898, 899, 900

I: Program is using uninitialized variables.
Note the difference between "is used" and "may be used"
W: xbmc uninitialized-variable convolve_fx.c:333
W: xbmc uninitialized-variable filters.c:747
W: xbmc uninitialized-variable flying_stars_fx.c:312
W: xbmc uninitialized-variable ifs.c:762
W: xbmc uninitialized-variable tentacle3d.c:102
E: xbmc 64bit-portability-issue ass.c:845

I: Program is using implicit definitions of special functions.
these functions need to use their correct prototypes to allow
the lightweight buffer overflow checking to work.
- Implicit memory/string functions need #include <string.h>.
- Implicit *printf functions need #include <stdio.h>.
- Implicit *printf functions need #include <stdio.h>.
- Implicit *read* functions need #include <unistd.h>.
- Implicit *recv* functions need #include <sys/socket.h>.
E: xbmc implicit-fortify-decl main.c:93, 312, 427, 1074, 1081, 1199, 1219
E: xbmc implicit-fortify-decl metadata.c:446

I: Function call needs to pass NULL-pointer as last argument
E: xbmc missing-sentinel xmms_goom.c:68

I: Program returns random data in a function
E: xbmc no-return-in-nonvoid-function timidity/common.c:679, 655, 619, 593

I: Program causes undefined operation
(likely same variable used twiceand post/pre incremented in the same expression).
e.g. x = x++; Split it in two operations.
E: xbmc sequence-point LZH/lzhxlib.c:117
E: xbmc sequence-point Source/MACLib/Old/AntiPredictorExtraHigh.cpp:249, 253, 257
E: xbmc sequence-point Ymload.cpp:326
E: xbmc sequence-point unpack3.c:1029, 1046, 1064, 1066, 1192, 1194
E: xbmc sequence-point ximadsp.cpp:2775
Reply
#2
I disabled the gcc checks and then xbmc compiles fine. (The bugs are still there though) Wink

But at least I get packages.
Reply
#3
Please open a trac ticket for these issues. Thanks.
Reply

Logout Mark Read Team Forum Stats Members Help
Compile on Opensuse0