Opened 13 years ago

Closed 13 years ago

#2997 closed defect (fixed)

debug build of libavcodec is broken on x86_32 after [12645]

Reported by: Janne Grunau Owned by: Janne Grunau
Priority: minor Milestone: 0.21
Component: mythtv Version: head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

-----------------------------
ccache gcc -c -pipe -march=pentium4 -w -g -O -D_REENTRANT  -DMMX  
-Di386 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DPREFIX=\"/usr/local\"  
-DLIBDIR=\"/usr/local/lib\" -DHAVE_AV_CONFIG_H -D_LARGEFILE_SOURCE  
-DHAVE_XVMC -DHAVE_XVMC_VLD -DQT_THREAD_SUPPORT -DQT_SHARED  
-DQT_TABLET_SUPPORT -DQT_NO_DEBUG -I/usr/qt/3/mkspecs/linux-g++ -I.  
-I.. -I../.. -I../libavutil -I/usr/qt/3/include -o h261.o h261.c
ccache gcc -c -pipe -march=pentium4 -w -g -O -D_REENTRANT  -DMMX  
-Di386 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DPREFIX=\"/usr/local\"  
-DLIBDIR=\"/usr/local/lib\" -DHAVE_AV_CONFIG_H -D_LARGEFILE_SOURCE  
-DHAVE_XVMC -DHAVE_XVMC_VLD -DQT_THREAD_SUPPORT -DQT_SHARED  
-DQT_TABLET_SUPPORT -DQT_NO_DEBUG -I/usr/qt/3/mkspecs/linux-g++ -I.  
-I.. -I../.. -I../libavutil -I/usr/qt/3/include -o h264.o h264.c
cabac.h: In function 'get_cabac_noinline':
cabac.h:522: error: can't find a register in class 'GENERAL_REGS'  
while reloading 'asm'
make[2]: *** [h264.o] Error 1
make[2]: Leaving directory `/usr/src/myth/mythtv/libs/libavcodec'
make[1]: *** [sub-libavcodec] Error 2
make[1]: Leaving directory `/usr/src/myth/mythtv/libs'
make: *** [sub-libs] Error 2
----------------------

Please attach your configure command line and output to this ticket.

Attachments (1)

add_fomit_frame_pointer_to_debug_cflags.diff (408 bytes) - added by skamithi 13 years ago.
this works for me.

Download all attachments as: .zip

Change History (5)

comment:1 Changed 13 years ago by jose.bandos at gmail dot com

adding "CFLAGS += -fomit-frame-pointer" to libs/libavcodec/Makefile as per the mplayer mailing lists fixed it for me. My configure line is as follows: ./configure --prefix=/usr --enable-lirc --enable-audio-alsa --enable-dvb --enable-audio-oss --enable-audio-jack --enable-audio-arts --enable-opengl-vsync --enable-dvb --dvb-path=/usr/include --enable-ivtv --enable-firewire --enable-joystick-menu --enable-proc-opt --compile-type=debug --with-bindings=perl --tune=i486 --enable-xvmc --enable-xvmc-vld --enable-xvmc-pro --enable-mmx

The output: # Basic Settings Compile type debug Compiler cache no DistCC no Install prefix /usr CPU x86 (i686) big-endian no MMX enabled yes CMOV enabled yes CMOV is fast yes

# Input Support Joystick menu yes lirc support yes Apple Remote no Video4Linux sup. yes ivtv support yes FireWire? support yes DVB support yes usr/include DBox2 support yes HDHomeRun sup. yes IPTV support yes

# Sound Output Support OSS support yes ALSA support yes aRts support yes JACK support yes DTS passthrough no

# Video Output Support x11 support yes xrandr support yes xv support yes XvMC support yes XvMC VLD support yes XvMC pro support yes XvMC OpenGL sup. no XvMC libs -lXvMCW Mac acceleration no OpenGL vsync yes DirectFB no

# Misc Features Frontend yes Backend yes

# Bindings bindings_perl yes Creating libs/libmyth/mythconfig.h and libs/libmyth/mythconfig.mak

WARNING: When using --enable-proc-opt you must include the

output of ./configure along with any bug report.

comment:2 Changed 13 years ago by skamithi

Without --compile-type=debug, "-fomit-frame-pointer" is added to the CFLAGS for libavcodec. with it, "-fomit-frame-pointer" is missing. I have a x86_32..not x86_64.

Changed 13 years ago by skamithi

this works for me.

comment:3 Changed 13 years ago by Janne Grunau

Summary: libavcodec doesn't compile without optimizations on x86_64 after [12645]debug build of libavcodec is broken on x86_32 after [12645]

comment:4 Changed 13 years ago by Janne Grunau

Resolution: fixed
Status: newclosed

(In [12655]) Fixes #2997. use -fomit-frame-pointer even for debug builds of libavcodec on x86_64

debug builds with gcc-4* are still debugable Added a warning to configure for gcc < 4

Note: See TracTickets for help on using tickets.