[Ffmpeg-devel] [PATCH] ffmpeg doesn't compile on Mac OS X anymore...
Derk-Jan Hartman
d.hartman
Wed Oct 19 01:31:13 CEST 2005
I was just doing the exact same thing :D
I have one more point though..
configure sets extralibs in the darwin section to "". This results in
the -lm flag not being included for darwin. Though it works with this
patch, i do believe the -lm flag is required in Darwin (if I remember
correctly, some other common loaded component has the symbols as
well, but you cannot rely on this).
So I say that additionally to this patch we also remove the
extralibs="" line in the darwin section,
DJ
btw. if you set --disable-audio-beos on a non beos system, the
extralibs gets additional arguments, which AGAIN make this lrintf
check fail on darwin :(
i would prefer to keep configure arguments as platform independent as
possible. Anyone got ideas for this?
On 19 okt 2005, at 00:33, Patrice Bensoussan wrote:
> Hello,
>
> Here is an attempt to fix both issues (use CFLAGS/LDFLAGS so that
> lrintf detection doesn't fail if extra libs
> are not installed in standard locations and get rid of this
> MACOSX_DEPLOYMENT_TARGET issue. Not sure
> about this one, but at least it seems to work fine on 10.4 with gcc
> 3.3 and gcc 4. Can anyone test on 10.2/10.3?)
> Also, I had to use -undefined suppress for vhook libs... not sure
> how it's meant to be used, but I guess binaries
> using this libs should actually link with all the required libs).
>
> I hope this helps,
> Patrice
>
>
> Index: configure
> ===================================================================
> RCS file: /cvsroot/ffmpeg/ffmpeg/configure,v
> retrieving revision 1.211
> diff -u -p -r1.211 configure
> --- configure 12 Oct 2005 22:24:03 -0000 1.211
> +++ configure 18 Oct 2005 22:25:42 -0000
> @@ -329,7 +329,7 @@ v4l="no"
> audio_oss="no"
> dv1394="no"
> ffserver="no"
> -SHFLAGS="-dynamiclib -Wl,-single_module,-undefined,dynamic_lookup"
> +SHFLAGS="-dynamiclib -Wl"
> extralibs=""
> darwin="yes"
> strip="strip -x"
> @@ -983,7 +983,7 @@ int main( void ) { return (lrintf(3.999f
> EOF
> have_lrintf="no"
> -if $cc $extralibs -o $TMPE $TMPC 2> /dev/null ; then
> +if $cc $CFLAGS $LDFLAGS $extralibs -o $TMPE $TMPC 2> /dev/null ; then
> have_lrintf="yes"
> # allanc at chickenandporn.com: cannot execute cross-compiled
> # code on the host. Only execute if not cross-compiling.
> Index: vhook/Makefile
> ===================================================================
> RCS file: /cvsroot/ffmpeg/ffmpeg/vhook/Makefile,v
> retrieving revision 1.24
> diff -u -p -r1.24 Makefile
> --- vhook/Makefile 1 Oct 2005 14:21:34 -0000 1.24
> +++ vhook/Makefile 18 Oct 2005 22:25:42 -0000
> @@ -5,7 +5,7 @@ VPATH=$(SRC_PATH)/vhook
> CFLAGS=-fPIC $(SHCFLAGS) -I.. -I$(SRC_PATH) -I$(SRC_PATH)/
> libavformat -I$(SRC_PATH)/libavcodec -I$(SRC_PATH)/libavutil -
> DHAVE_AV_CONFIG_H
> ifeq ($(CONFIG_DARWIN),yes)
> - SHFLAGS += -flat_namespace
> + SHFLAGS += -flat_namespace -undefined suppress
> endif
> HOOKS=null$(SLIBSUF) fish$(SLIBSUF) ppm$(SLIBSUF) watermark$(SLIBSUF)
>
>
>
> Begin forwarded message:
>
>
>> From: Patrice Bensoussan <patrice.bensoussan at gmail.com>
>> Date: 7 October 2005 23:28:05 BDT
>> To: ffmpeg-devel at mplayerhq.hu
>> Subject: ffmpeg doesn't compile on Mac OS X anymore...
>>
>>
>> >On Thu, Oct 06, 2005 at 09:15:09PM +0100, Patrice Bensoussan wrote:
>> >>
>> >> It looks like there are two issues when trying to compile on
>> Mac OS X
>> >> Tiger :
>> >>
>> >> 1/ When using gcc 3.3, I reach the linking stage but get :
>> >>
>> >> cc -Wl,-dynamic,-search_paths_first -dynamiclib -Wl,-
>> single_module,-
>> >> undefined,dynamic_lookup -flat_namespace -Wl,-install_name,/usr/
>> local/
>> >> lib/vhook/null.dylib -g -o null.dylib null.o
>> >> ld: flag: -undefined dynamic_lookup can't be used with
>> >> MACOSX_DEPLOYMENT_TARGET environment variable set to: 10.1
>> >> /usr/bin/libtool: internal link edit command failed
>> >> make[1]: *** [null.dylib] Error 1
>> >
>> >Yes, that's an issue. You can work around it with
>> >
>> >export MACOSX_DEPLOYMENT_TARGET=10.3
>> >
>> >Does anybody know how to fix this properly
>> >
>>
>> Good question... I've had a quick look at the man page for ld, and
>> i'm wondering why we are using -undefined,dynamic_lookup -
>> flat_namespace.
>> It looks like this is what is causing this new error to appear.
>> Also, wondering if the created binary would actually run on 10.2 if
>> we set this variable to 10.3 :/
>>
>> From the man page : (it seems that two-level is the default, why
>> is this changed?)
>>
>> TWO-LEVEL AND FLAT NAMESPACES
>> Two-level and flat namespaces refer to how references
>> to symbols in
>> dynamic libraries are resolved to a definition in
>> specific dynamic
>> library. For two-level namespace that resolution is
>> done at static
>> link time when each image (program, bundle and shared
>> library) is
>> built. When a program is using images built with two-
>> level namespace
>> there may be different global symbols with the same name
>> being used by
>> different images in the program (this is now the default).
>> When a pro-
>> gram is using all flat namespace images then only one
>> global symbol for
>> each global symbol name is used by all images of the
>> program (this was
>> the default in MacOS X 10.0).
>>
>> >> 2/ When using gcc 4.0, compilation aborts with the error (this is
>> >> only a warning with gcc 3)
>> >> make[1]: *** [mathematics.o] Error 1
>> >>
>> >That's strange, does the lrintf check in configure fail for you
>> then?
>> >
>> >Diego
>>
>> Well not sure how to see this in configure, here is the output :
>> (btw i'm using --enable-small which explains why I dont't have -O3)
>>
>> ./configure --enable-mp3lame --enable-faac --enable-small
>> install prefix /usr/local
>> source path /Users/patriceb/tmp/WMA/cvs-HEAD/ffmpeg
>> C compiler cc
>> make make
>> CPU powerpc (generic)
>> big-endian yes
>> inttypes.h yes
>> broken inttypes.h no
>> AltiVec enabled yes
>> gprof enabled no
>> zlib enabled yes
>> libgsm enabled no
>> mp3lame enabled yes
>> libogg enabled no
>> Vorbis enabled no
>> Theora enabled no
>> FAAD enabled no
>> faadbin enabled no
>> FAAC enabled yes
>> XviD enabled no
>> x264 enabled no
>> a52 support no
>> a52 dlopened no
>> DTS support no
>> pp support no
>> debug symbols yes
>> strip symbols yes
>> optimize small
>> shared pp no
>> video hooking yes
>> SDL support no
>> Imlib2 support no
>> FreeType support no
>> Sun medialib support no
>> pthreads support no
>> AMR-NB float support no
>> AMR-NB fixed support no
>> AMR-WB float support no
>> AMR-WB IF2 support no
>> network support yes
>> IPv6 support no
>> License: LGPL
>> Creating config.mak and config.h...
>>
>> My version of gcc 3.3/4.0 (latest dev tools) :
>>
>> gcc (GCC) 3.3 20030304 (Apple Computer, Inc. build 1809)
>> Copyright (C) 2002 Free Software Foundation, Inc.
>> This is free software; see the source for copying conditions.
>> There is NO
>> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
>> PURPOSE.
>>
>> powerpc-apple-darwin8-gcc-4.0.0 (GCC) 4.0.0 (Apple Computer, Inc.
>> build 5026)
>> Copyright (C) 2005 Free Software Foundation, Inc.
>> This is free software; see the source for copying conditions.
>> There is NO
>> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
>> PURPOSE.
>>
>>
>>
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at mplayerhq.hu
> http://mplayerhq.hu/mailman/listinfo/ffmpeg-devel
>
More information about the ffmpeg-devel
mailing list