[FFmpeg-trac] #4909(undetermined:new): can't compile ffmpeg with gcc520 + enable-libutvideo option under macosx
FFmpeg
trac at avcodec.org
Tue Oct 6 10:45:54 CEST 2015
#4909: can't compile ffmpeg with gcc520 + enable-libutvideo option under macosx
-------------------------------------+-------------------------------------
Reporter: ponpon | Type: defect
Status: new | Priority: normal
Component: | Version: git-
undetermined | master
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Dear ffmpeg team,
thank you for providing the excellent app.
I can't compile ffmpeg with gcc520 + enable-libutvideo option under macosx
1095.
regardless of using complile option -lstdc++, the below appears.
if --enable-shared --disable-static are used in compiling libutvideo, the
compile of ffmpeg is succeeded.
{{{
Undefined symbols for architecture x86_64:
.
.
.
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
make: *** [ffmpeg_g] Error 1
}}}
How to reproduce: i executed the following. the logs of ffmpeg are
attached in this ticket, because of too long.
{{{
~ x$ #Make RamDisk
~ x$ DISK_ID=$(hdid -nomount ram://26214400)
~ x$ newfs_hfs -v Ramdisk ${DISK_ID}
~ x$ diskutil mount ${DISK_ID}
~ x$
~ x$ #Set up some shortcuts
~ x$ MES="/Volumes/Ramdisk/Packages"
~ x$ TARGET="/Volumes/Ramdisk/sw"
~ x$ CMPL="/Volumes/Ramdisk/compile"
~ x$
~ x$ #Setup target directories
~ x$ mkdir -p ${MES}
~ x$ mkdir -p ${TARGET}
~ x$ mkdir -p ${CMPL}
~ x$
~ x$ #Use gcc
~ x$ unset CC
~ x$ export CC=gcc
~ x$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/opt/local/libexec/gcc/x86_64-apple-darwin13/5.2.0
/lto-wrapper
Target: x86_64-apple-darwin13
Configured with:
/opt/local/var/macports/build/_opt_mports_dports_lang_gcc5/gcc5/work/gcc-5.2.0/configure
--prefix=/opt/local --build=x86_64-apple-darwin13 --enable-
languages=c,c++,objc,obj-c++,lto,fortran,java --libdir=/opt/local/lib/gcc5
--includedir=/opt/local/include/gcc5 --infodir=/opt/local/share/info
--mandir=/opt/local/share/man --datarootdir=/opt/local/share/gcc-5 --with-
local-prefix=/opt/local --with-system-zlib --disable-nls --program-
suffix=-mp-5 --with-gxx-include-dir=/opt/local/include/gcc5/c++/ --with-
gmp=/opt/local --with-mpfr=/opt/local --with-mpc=/opt/local --with-
isl=/opt/local --enable-stage1-checking --disable-multilib --enable-lto
--enable-libstdcxx-time --with-as=/opt/local/bin/as --with-
ld=/opt/local/bin/ld --with-ar=/opt/local/bin/ar --with-
bugurl=https://trac.macports.org/newticket --with-pkgversion='MacPorts
gcc5 5.2.0_0'
Thread model: posix
gcc version 5.2.0 (MacPorts gcc5 5.2.0_0)
~ x$
~ x$ unset CXX
~ x$ export CXX=g++
~ x$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/opt/local/libexec/gcc/x86_64-apple-darwin13/5.2.0
/lto-wrapper
Target: x86_64-apple-darwin13
Configured with:
/opt/local/var/macports/build/_opt_mports_dports_lang_gcc5/gcc5/work/gcc-5.2.0/configure
--prefix=/opt/local --build=x86_64-apple-darwin13 --enable-
languages=c,c++,objc,obj-c++,lto,fortran,java --libdir=/opt/local/lib/gcc5
--includedir=/opt/local/include/gcc5 --infodir=/opt/local/share/info
--mandir=/opt/local/share/man --datarootdir=/opt/local/share/gcc-5 --with-
local-prefix=/opt/local --with-system-zlib --disable-nls --program-
suffix=-mp-5 --with-gxx-include-dir=/opt/local/include/gcc5/c++/ --with-
gmp=/opt/local --with-mpfr=/opt/local --with-mpc=/opt/local --with-
isl=/opt/local --enable-stage1-checking --disable-multilib --enable-lto
--enable-libstdcxx-time --with-as=/opt/local/bin/as --with-
ld=/opt/local/bin/ld --with-ar=/opt/local/bin/ar --with-
bugurl=https://trac.macports.org/newticket --with-pkgversion='MacPorts
gcc5 5.2.0_0'
Thread model: posix
gcc version 5.2.0 (MacPorts gcc5 5.2.0_0)
~ x$
~ x$ #Build utvideo
~ x$ cd ${CMPL}
compile x$ git clone git://github.com/qyot27/libutvideo
Cloning into 'libutvideo'...
remote: Counting objects: 1142, done.
remote: Total 1142 (delta 0), reused 0 (delta 0), pack-reused 1142
Receiving objects: 100% (1142/1142), 426.50 KiB | 148.00 KiB/s, done.
Resolving deltas: 100% (823/823), done.
Checking connectivity... done.
compile x$ cd ${CMPL}
compile x$ cd libutvideo
libutvideo x$ ./configure --prefix=${TARGET} --enable-asm=x64&& make &&
make install
sed: 1: "version.c": invalid command code v
version.c:3:1: warning: return type defaults to 'int' [-Wimplicit-int]
main() {
^
OS: MACOSX
asm: x64
debug: no
gprof: no
PIC: no
static: yes
shared: no
optlevel: 2
You can run 'make' now.
CXX utv_core/Codec.o
CXX utv_core/CodecBase.o
CXX utv_core/Coefficient.o
CXX utv_core/Convert.o
CXX utv_core/DummyCodec.o
CXX utv_core/FrameBuffer.o
CXX utv_core/GlobalConfig.o
CXX utv_core/HuffmanCode.o
CXX utv_core/Predict.o
CXX utv_core/Thread.o
CXX utv_core/TunedFunc.o
In file included from utv_core/TunedFunc.cpp:135:0:
utv_core/TunedFunc_x86x64.cpp: In constructor
'CTunedFuncInitializer::CTunedFuncInitializer()':
utv_core/TunedFunc_x86x64.cpp:286:25: warning: dereferencing type-punned
pointer will break strict-aliasing rules [-Wstrict-aliasing]
*(uint32_t *)(vendor+0) = cpuid_0.ebx;
^
utv_core/TunedFunc_x86x64.cpp:304:30: warning: dereferencing type-punned
pointer will break strict-aliasing rules [-Wstrict-aliasing]
*(uint32_t *)(procbrand+ 0) = cpuid_ex2.eax;
^
utv_core/TunedFunc_x86x64.cpp:280:15: warning: variable 'maname' set but
not used [-Wunused-but-set-variable]
const char *maname;
^
utv_core/TunedFunc_x86x64.cpp:281:12: warning: variable 'ma' set but not
used [-Wunused-but-set-variable]
uint32_t ma;
^
CXX utv_core/UL00Codec.o
CXX utv_core/ULRACodec.o
CXX utv_core/ULRGCodec.o
CXX utv_core/ULYUV420Codec.o
CXX utv_core/ULYUV422Codec.o
CXX utv_core/UQ00Codec.o
utv_core/UQ00Codec.cpp: In member function 'int
CUQ00Codec::CalcFrameMetric(utvf_t, unsigned int, unsigned int, size_t,
const void*, size_t)':
utv_core/UQ00Codec.cpp:233:20: warning: unused variable 'p' [-Wunused-
variable]
const STREAMINFO *p = (const STREAMINFO *)pExtraData;
^
CXX utv_core/UQY2Codec.o
CXX utv_core/utv_core.o
ASM utv_core/Convert_asm_x64.o
ASM utv_core/HuffmanCode_asm_x64.o
ASM utv_core/Predict_asm_x64.o
CXX utv_core/TunedFunc_x86x64.o
utv_core/TunedFunc_x86x64.cpp: In constructor
'CTunedFuncInitializer::CTunedFuncInitializer()':
utv_core/TunedFunc_x86x64.cpp:286:25: warning: dereferencing type-punned
pointer will break strict-aliasing rules [-Wstrict-aliasing]
*(uint32_t *)(vendor+0) = cpuid_0.ebx;
^
utv_core/TunedFunc_x86x64.cpp:304:30: warning: dereferencing type-punned
pointer will break strict-aliasing rules [-Wstrict-aliasing]
*(uint32_t *)(procbrand+ 0) = cpuid_ex2.eax;
^
utv_core/TunedFunc_x86x64.cpp:280:15: warning: variable 'maname' set but
not used [-Wunused-but-set-variable]
const char *maname;
^
utv_core/TunedFunc_x86x64.cpp:281:12: warning: variable 'ma' set but not
used [-Wunused-but-set-variable]
uint32_t ma;
^
AR utv_core/libutvideo.a
/opt/local/bin/ranlib: file: utv_core/libutvideo.a(GlobalConfig.o) has no
symbols
/opt/local/bin/ranlib: file: utv_core/libutvideo.a(utv_core.o) has no
symbols
RANLIB utv_core/libutvideo.a
ranlib: file: utv_core/libutvideo.a(GlobalConfig.o) has no symbols
ranlib: file: utv_core/libutvideo.a(utv_core.o) has no symbols
INSTALL /Volumes/Ramdisk/sw/include/utvideo/Codec.h
INSTALL /Volumes/Ramdisk/sw/include/utvideo/utvideo.h
INSTALL /Volumes/Ramdisk/sw/include/utvideo/version.h
INSTALL /Volumes/Ramdisk/sw/lib/pkgconfig/libutvideo.pc
INSTALL /Volumes/Ramdisk/sw/lib/libutvideo.a
ranlib: file: /Volumes/Ramdisk/sw/lib/libutvideo.a(GlobalConfig.o) has no
symbols
ranlib: file: /Volumes/Ramdisk/sw/lib/libutvideo.a(utv_core.o) has no
symbols
libutvideo x$
libutvideo x$ #Add flags
libutvideo x$ export
PKG_CONFIG_PATH="/Volumes/Ramdisk/sw/lib/pkgconfig:/opt/local/lib/pkgconfig"
libutvideo x$ unset LDFLAGS CFLAGS MYFLAGS CXXFLAGS
libutvideo x$ export MYFLAGS=" -lstdc++ -L/opt/local/lib
-I/opt/local/include -L${TARGET}/lib -I${TARGET}/include "
libutvideo x$ export LDFLAGS="$MYFLAGS"
libutvideo x$ export CFLAGS="$MYFLAGS"
libutvideo x$ export CXXFLAGS="$MYFLAGS"
libutvideo x$
libutvideo x$ #Build ffmpeg
compile x$ cd ${CMPL}
compile x$ git clone git://source.ffmpeg.org/ffmpeg.git
Cloning into 'ffmpeg'...
remote: Counting objects: 446401, done.
remote: Compressing objects: 100% (99571/99571), done.
remote: Total 446401 (delta 354904), reused 436264 (delta 346093)
Receiving objects: 100% (446401/446401), 105.22 MiB | 1.59 MiB/s, done.
Resolving deltas: 100% (354904/354904), done.
Checking connectivity... done.
Checking out files: 100% (5404/5404), done.
compile x$ cd ${CMPL}
compile x$ cd ffmpeg
ffmpeg x$
./configure --prefix=${TARGET} --enable-pthreads --cc="gcc" --extra-
cflags=" -lstdc++" --cxx="g++" --enable-gpl --enable-libutvideo
1>>configure_result.txt 2>>configure_result.txt&& make -j 8
1>>make_result.txt 2>>make_result.txt&& make install
}}}
Patches should be submitted to the ffmpeg-devel mailing list and not this
bug tracker.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/4909>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list