# ffmpeg-mt on freebsd?



## wonslung (Jul 4, 2009)

i was wondering if anyone has tried compiling the experimental multithreaded version of ffmpeg on freebsd 7.2 amd64

I notice it's not in ports but the ffmpeg-mt site says it should work on freebsd.  The reason i ask is that before, on linux, i used this with a program called Ps3mediaserver.  Ps3mediaserver is pretty much what it sounds like, but the transcoding it does is much more desirable than the way transcoding works in mediatomb 

(in ps3mediaserver you can pause, rewind, fastfoward)  


here is the page that i was talking about that seems to suggest it should work on freebsd http://www.mplayerhq.hu/design7/news.html


I'm mainly asking because i'm not sure about all the dependencies, when i did install this on ubuntu it required a MASSIVE amount of packages and i'm not sure what they correspond to in freebsd.

i wouldn't know where to BEGIN to find out which of these packages i'd need in freebsd and what they'd be called but if anyone DOES know, heres the list of packages i needed in Ubuntu


> em8300-headers gawk gettext html2text intltool-debian ladspa-sdk libaa1-dev libartsc0 libartsc0-dev libasound2-dev libatk1.0-dev libaudio-dev libaudio2 libaudiofile-dev libavahi-client-dev libavahi-common-dev libcaca-dev libcairo2-dev libcdparanoia0-dev libcucul-dev libdbus-1-dev libdbus-glib-1-dev libdirectfb-dev libdirectfb-extra libdts-dev libdv4-dev libenca-dev libenca0 libesd0-dev libexpat1-dev libfaac-dev libfaac0 libfontconfig1-dev libfreebob0 libfreetype6-dev libfribidi-dev libggi-target-x libggi2 libggi2-dev libggimisc2 libggimisc2-dev libgif-dev libgii1 libgii1-dev libgii1-target-x libgl1-mesa-dev libglib2.0-dev libglide2 libglu1-mesa-dev libglu1-xorg-dev libgtk2.0-dev libice-dev libjack-dev libjack0 libjpeg62-dev liblzo-dev liblzo1 liblzo2-2 liblzo2-dev libmad0 libmad0-dev libmail-sendmail-perl libmp3lame-dev libmp3lame0 libmpcdec-dev libmpcdec3 libncurses5-dev libogg-dev libopenal-dev libopenal1 libpango1.0-dev libpixman-1-devlibpng12-dev libpopt-dev libpthread-stubs0 libpthread-stubs0-dev libpulse-dev



edit:

i was wondering, would installing the ffmpeg in ports, then deinstalling it give me the dependencies i needed to install the ffmpeg-mt from the git repos?


edit 2:

I tried the idea i had in edit1 but it didn't work, i get these errors:

```
libavdevice/bktr.c: In function 'bktr_init':
libavdevice/bktr.c:143: error: 'struct meteor_geomet' has no member named 'rows'
libavdevice/bktr.c:144: error: 'struct meteor_geomet' has no member named 'columns'
libavdevice/bktr.c:145: error: 'struct meteor_geomet' has no member named 'frames'
libavdevice/bktr.c:146: error: 'struct meteor_geomet' has no member named 'oformat'
libavdevice/bktr.c:159: error: 'struct meteor_geomet' has no member named 'oformat'
libavdevice/bktr.c: In function 'bktr_getframe':
libavdevice/bktr.c:212: warning: implicit declaration of function 'usleep'
libavdevice/bktr.c: In function 'grab_read_header':
libavdevice/bktr.c:277: warning: implicit declaration of function 'strcasecmp'
gmake: *** [libavdevice/bktr.o] Error 1
```


----------



## richardpl (Jul 4, 2009)

Reconfigure with bktr explicitly disabled.


----------



## wonslung (Jul 4, 2009)

there doesn't seem to be an option
./configure --help shows

```
Standard options:
  --help                   print this message
  --logfile=FILE           log tests and output to FILE [config.err]
  --disable-logging        do not log configure debug information   
  --prefix=PREFIX          install in PREFIX []                     
  --bindir=DIR             install binaries in DIR [PREFIX/bin]     
  --datadir=DIR            install data files in DIR [PREFIX/share/ffmpeg]
  --libdir=DIR             install libs in DIR [PREFIX/lib]               
  --shlibdir=DIR           install shared libs in DIR [PREFIX/lib]        
  --incdir=DIR             install includes in DIR [PREFIX/include]       
  --mandir=DIR             install man page in DIR [PREFIX/share/man]     

Configuration options:
  --disable-static         do not build static libraries [no]
  --enable-shared          build shared libraries [no]       
  --enable-gpl             allow use of GPL code, the resulting libs
                           and binaries will be under GPL [no]      
  --enable-version3        upgrade (L)GPL to version 3 [no]         
  --enable-nonfree         allow use of nonfree code, the resulting libs
                           and binaries will be unredistributable [no]  
  --disable-ffmpeg         disable ffmpeg build                         
  --disable-ffplay         disable ffplay build                         
  --disable-ffserver       disable ffserver build                       
  --enable-postproc        enable GPLed postprocessing support [no]     
  --enable-avfilter        video filter support [no]                    
  --enable-avfilter-lavf   video filters dependent on avformat [no]     
  --enable-beosthreads     use BeOS threads [no]                        
  --enable-os2threads      use OS/2 threads [no]                        
  --enable-pthreads        use pthreads [no]                            
  --enable-w32threads      use Win32 threads [no]                       
  --enable-x11grab         enable X11 grabbing [no]                     
  --disable-network        disable network support [no]                 
  --disable-ipv6           disable IPv6 support [no]                    
  --disable-mpegaudio-hp   faster (but less accurate) MPEG audio decoding [no]
  --enable-gray            enable full grayscale support (slower color)       
  --disable-swscale-alpha  disable alpha channel support in swscale           
  --disable-fastdiv        disable table-based division                       
  --enable-small           optimize for size instead of speed                 
  --disable-aandct         disable AAN DCT code                               
  --disable-fft            disable FFT code                                   
  --disable-golomb         disable Golomb code                                
  --disable-mdct           disable MDCT code                                  
  --disable-rdft           disable RDFT code                                  
  --disable-vaapi          disable VAAPI code                                 
  --disable-vdpau          disable VDPAU code                                 
  --enable-runtime-cpudetect detect cpu capabilities at runtime (bigger binary)
  --enable-hardcoded-tables use hardcoded tables instead of runtime generation 
  --enable-memalign-hack   emulate memalign, interferes with memory debuggers  
  --enable-beos-netserver  enable BeOS netserver                               
  --disable-encoder=NAME   disable encoder NAME                                
  --enable-encoder=NAME    enable encoder NAME                                 
  --disable-encoders       disable all encoders                                
  --disable-decoder=NAME   disable decoder NAME                                
  --enable-decoder=NAME    enable decoder NAME                                 
  --disable-decoders       disable all decoders                                
  --disable-hwaccel=NAME   disable hwaccel NAME                                
  --enable-hwaccel=NAME    enable hwaccel NAME                                 
  --disable-hwaccels       disable all hwaccels                                
  --disable-muxer=NAME     disable muxer NAME                                  
  --enable-muxer=NAME      enable muxer NAME                                   
  --disable-muxers         disable all muxers                                  
  --disable-demuxer=NAME   disable demuxer NAME                                
  --enable-demuxer=NAME    enable demuxer NAME                                 
  --disable-demuxers       disable all demuxers                                
  --enable-parser=NAME     enable parser NAME                                  
  --disable-parser=NAME    disable parser NAME                                 
  --disable-parsers        disable all parsers                                 
  --enable-bsf=NAME        enable bitstream filter NAME                        
  --disable-bsf=NAME       disable bitstream filter NAME                       
  --disable-bsfs           disable all bitstream filters                       
  --enable-protocol=NAME   enable protocol NAME                                
  --disable-protocol=NAME  disable protocol NAME                               
  --disable-protocols      disable all protocols                               
  --disable-indev=NAME     disable input device NAME                           
  --disable-outdev=NAME    disable output device NAME                          
  --disable-indevs         disable input devices                               
  --disable-outdevs        disable output devices                              
  --disable-devices        disable all devices                                 
  --enable-filter=NAME     enable filter NAME                                  
  --disable-filter=NAME    disable filter NAME                                 
  --disable-filters        disable all filters                                 
  --list-decoders          show all available decoders                         
  --list-encoders          show all available encoders                         
  --list-hwaccels          show all available hardware accelerators            
  --list-muxers            show all available muxers                           
  --list-demuxers          show all available demuxers                         
  --list-parsers           show all available parsers                          
  --list-protocols         show all available protocols                        
  --list-bsfs              show all available bitstream filters                
  --list-indevs            show all available input devices                    
  --list-outdevs           show all available output devices                   
  --list-filters           show all available filters
```


----------



## wonslung (Jul 4, 2009)

and 

```
External library support:
  --enable-avisynth        enable reading of AVISynth script files [no]
  --enable-bzlib           enable bzlib [autodetect]                   
  --enable-libamr-nb       enable libamr-nb floating point audio codec [no]
  --enable-libamr-wb       enable libamr-wb floating point audio codec [no]
  --enable-libopencore-amrnb enable AMR-NB de/encoding via libopencore-amrnb [no]                                                                               
  --enable-libopencore-amrwb enable AMR-WB decoding via libopencore-amrwb [no]  
  --enable-libdc1394       enable IIDC-1394 grabbing using libdc1394            
                           and libraw1394 [no]                                  
  --enable-libdirac        enable Dirac support via libdirac [no]               
  --enable-libfaac         enable FAAC support via libfaac [no]                 
  --enable-libfaad         enable FAAD support via libfaad [no]                 
  --enable-libfaadbin      open libfaad.so.0 at runtime [no]                    
  --enable-libgsm          enable GSM support via libgsm [no]                   
  --enable-libmp3lame      enable MP3 encoding via libmp3lame [no]              
  --enable-libnut          enable NUT (de)muxing via libnut,                    
                           native (de)muxer exists [no]                         
  --enable-libopenjpeg     enable JPEG 2000 decoding via OpenJPEG [no]          
  --enable-libschroedinger enable Dirac support via libschroedinger [no]        
  --enable-libspeex        enable Speex decoding via libspeex [no]              
  --enable-libtheora       enable Theora encoding via libtheora [no]            
  --enable-libvorbis       enable Vorbis encoding via libvorbis,                
                           native implementation exists [no]                    
  --enable-libx264         enable H.264 encoding via x264 [no]                  
  --enable-libxvid         enable Xvid encoding via xvidcore,                   
                           native MPEG-4/Xvid encoder exists [no]               
  --enable-mlib            enable Sun medialib [no]                             
  --enable-zlib            enable zlib [autodetect]                             

Advanced options (experts only):
  --source-path=PATH       path to source code [/usr/local/src/ffmpeg-mt]
  --cross-prefix=PREFIX    use PREFIX for compilation tools []           
  --enable-cross-compile   assume a cross-compiler is used               
  --sysroot=PATH           root of cross-build tree                      
  --sysinclude=PATH        location of cross-build system headers        
  --target-os=OS           compiler targets OS [freebsd]                 
  --target-exec=CMD        command to run executables on target          
  --target-path=DIR        path to view of build directory on target     
  --nm=NM                  use nm tool                                   
  --as=AS                  use assembler AS []                           
  --cc=CC                  use C compiler CC [gcc]                       
  --host-cc=HOSTCC         use host C compiler HOSTCC                    
  --host-cflags=HCFLAGS    use HCFLAGS when compiling for host           
  --host-ldflags=HLDFLAGS  use HLDFLAGS when linking for host            
  --host-libs=HLIBS        use libs HLIBS when linking for host          
  --extra-cflags=ECFLAGS   add ECFLAGS to CFLAGS [ -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112]
  --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS []
  --extra-libs=ELIBS       add ELIBS []
  --extra-version=STRING   version string suffix []
  --build-suffix=SUFFIX    library name suffix []
  --arch=ARCH              select architecture [amd64]
  --cpu=CPU                select the minimum required CPU (affects
                           instruction selection, may crash on older CPUs)
  --enable-powerpc-perf    enable performance report on PPC
                           (requires enabling PMC)
  --disable-altivec        disable AltiVec optimizations
  --disable-amd3dnow       disable 3DNow! optimizations
  --disable-amd3dnowext    disable 3DNow! extended optimizations
  --disable-mmx            disable MMX optimizations
  --disable-mmx2           disable MMX2 optimizations
  --disable-sse            disable SSE optimizations
  --disable-ssse3          disable SSSE3 optimizations
  --disable-armv5te        disable armv5te optimizations
  --disable-armv6          disable armv6 optimizations
  --disable-armv6t2        disable armv6t2 optimizations
  --disable-armvfp         disable ARM VFP optimizations
  --disable-iwmmxt         disable iwmmxt optimizations
  --disable-mmi            disable MMI optimizations
  --disable-neon           disable neon optimizations
  --disable-vis            disable VIS optimizations
  --disable-yasm           disable use of yasm assembler

Developer options (useful when working on FFmpeg itself):
  --disable-debug          disable debugging symbols
  --enable-debug=LEVEL     set the debug level []
  --enable-gprof           enable profiling with gprof []
  --disable-optimizations  disable compiler optimizations
  --enable-extra-warnings  enable more compiler warnings
  --disable-stripping      disable stripping of executables and shared libraries

NOTE: Object files are built at the place where configure is launched.
```

sorry, wouldnt' all fit in one post


----------



## wonslung (Jul 4, 2009)

ok, is it ./configure --disable-indev=bktr?

i get this error when i do that

```
_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fomit-frame-pointer -g -Wdeclaration-after-statement -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wcast-qual -Wwrite-strings -Wundef -O3 -fno-math-errno        -c -o libavdevice/oss_audio.o libavdevice/oss_audio.c
In file included from libavdevice/oss_audio.c:31:
/usr/include/sys/soundcard.h:220: error: expected specifier-qualifier-list before 'u_long'
/usr/include/sys/soundcard.h:233: error: expected specifier-qualifier-list before 'u_char'
/usr/include/sys/soundcard.h:274: error: expected specifier-qualifier-list before 'u_long'
/usr/include/sys/soundcard.h:314: error: expected specifier-qualifier-list before 'u_char'
/usr/include/sys/soundcard.h:358: error: expected specifier-qualifier-list before 'u_long'
/usr/include/sys/soundcard.h:437: error: expected specifier-qualifier-list before 'u_char'
/usr/include/sys/soundcard.h:467: error: expected specifier-qualifier-list before 'u_long'
/usr/include/sys/soundcard.h:683: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'sbi_instr_data'
/usr/include/sys/soundcard.h:686: error: expected specifier-qualifier-list before 'u_short'
/usr/include/sys/soundcard.h:716: error: expected specifier-qualifier-list before 'u_long'
/usr/include/sys/soundcard.h:731: error: expected specifier-qualifier-list before 'u_long'
/usr/include/sys/soundcard.h:740: error: expected specifier-qualifier-list before 'u_char'
/usr/include/sys/soundcard.h:871: error: expected specifier-qualifier-list before 'u_char'
/usr/include/sys/soundcard.h:884: error: expected specifier-qualifier-list before 'u_char'
gmake: *** [libavdevice/oss_audio.o] Error 1
```


----------



## wonslung (Jul 4, 2009)

ok, my new configure is 
	
	



```
./configure --disable-indev=bktr --disable-indev=oss --disable-outdev=oss
```

this gets much farther, but still fails

```
Wundef -O3 -fno-math-errno        -c -o libavformat/udp.o libavformat/udp.c
libavformat/udp.c: In function 'udp_set_multicast_ttl':
libavformat/udp.c:77: error: 'IPPROTO_IPV6' undeclared (first use in this function)
libavformat/udp.c:77: error: (Each undeclared identifier is reported only once
libavformat/udp.c:77: error: for each function it appears in.)
libavformat/udp.c: In function 'udp_join_multicast_group':
libavformat/udp.c:105: error: 'IPPROTO_IPV6' undeclared (first use in this function)
libavformat/udp.c: In function 'udp_leave_multicast_group':
libavformat/udp.c:133: error: 'IPPROTO_IPV6' undeclared (first use in this function)
gmake: *** [libavformat/udp.o] Error 1
```


----------



## richardpl (Jul 4, 2009)

netinet/in.h is not included in build. Edit libavformat/udp.c and add it.

This is not trivial so continue only if you mastered C.


----------



## wonslung (Jul 4, 2009)

richardpl said:
			
		

> netinet/in.h is not included in build. Edit libavformat/udp.c and add it.
> 
> This is not trivial so continue only if you mastered C.



so basically theres no way for a novice to compile ffmpeg-mt on freebsd?

well darn.


----------



## richardpl (Jul 4, 2009)

You will be always novice in UNIX if you dont know C.


----------



## blah (Jul 5, 2009)

wonslung said:
			
		

> ```
> libavdevice/bktr.c: In function 'bktr_init':
> libavdevice/bktr.c:143: error: 'struct meteor_geomet' has no member named 'rows'
> libavdevice/bktr.c:144: error: 'struct meteor_geomet' has no member named 'columns'
> ...


These errors are present in ffmpeg svn for *so* long. Just comment out `-D_POSIX_C_SOURCE=200112' from configure script. Other than that you have to use more recent compiler/assembler. The old ones in base will most likely [post=24772]fail on some assembly instructions[/post] on amd64 in libavcodec.


----------



## wonslung (Jul 6, 2009)

richardpl said:
			
		

> You will be always novice in UNIX if you dont know C.




i don't think you should have to be a programmer to be "more than a novice" in any os.  I've learned a lot in the past month or so.  Maybe i'll start trying to learn C next if it's that important....i had no idea you had to be a programmer,


----------



## wonslung (Jul 6, 2009)

blah said:
			
		

> These errors are present in ffmpeg svn for *so* long. Just comment out `-D_POSIX_C_SOURCE=200112' from configure script. Other than that you have to use more recent compiler/assembler. The old ones in base will most likely [post=24772]fail on some assembly instructions[/post] on amd64 in libavcodec.




ok, i'll try to comment that section out like you suggest.  When you say use a more recent compiler/assembler which would you suggest for FreeBSD 7.2-Stable AMD64?

thanks!


edit:

it got a LOT farther in the compile after editing out that section but it stops now with these errors

```
/var/tmp//cczusVzF.s:56639: Error: `ff_h264_norm_shift(%esi)' is not a valid 64 bit base/index expression
/var/tmp//cczusVzF.s:56641: Error: `ff_h264_mlps_state+128(%eax)' is not a valid 64 bit base/index expression
/var/tmp//cczusVzF.s:56653: Error: `-1(%ebx)' is not a valid 64 bit base/index expression
/var/tmp//cczusVzF.s:56656: Error: `ff_h264_norm_shift(%ecx)' is not a valid 64 bit base/index expression
/var/tmp//cczusVzF.s:56691: Error: `ff_h264_lps_range(%eax,%esi,2)' is not a valid 64 bit base/index expression
/var/tmp//cczusVzF.s:56701: Error: `ff_h264_norm_shift(%esi)' is not a valid 64 bit base/index expression
/var/tmp//cczusVzF.s:56703: Error: `ff_h264_mlps_state+128(%eax)' is not a valid 64 bit base/index expression
/var/tmp//cczusVzF.s:56715: Error: `-1(%ebx)' is not a valid 64 bit base/index expression
/var/tmp//cczusVzF.s:56718: Error: `ff_h264_norm_shift(%ecx)' is not a valid 64 bit base/index expression
/var/tmp//cczusVzF.s:56749: Error: `ff_h264_lps_range(%eax,%esi,2)' is not a valid 64 bit base/index expression
/var/tmp//cczusVzF.s:56759: Error: `ff_h264_norm_shift(%esi)' is not a valid 64 bit base/index expression
/var/tmp//cczusVzF.s:56761: Error: `ff_h264_mlps_state+128(%eax)' is not a valid 64 bit base/index expression
/var/tmp//cczusVzF.s:56773: Error: `-1(%ebx)' is not a valid 64 bit base/index expression
/var/tmp//cczusVzF.s:56776: Error: `ff_h264_norm_shift(%ecx)' is not a valid 64 bit base/index expression
/var/tmp//cczusVzF.s:56830: Error: `ff_h264_lps_range(%eax,%esi,2)' is not a valid 64 bit base/index expression
/var/tmp//cczusVzF.s:56840: Error: `ff_h264_norm_shift(%esi)' is not a valid 64 bit base/index expression
/var/tmp//cczusVzF.s:56842: Error: `ff_h264_mlps_state+128(%eax)' is not a valid 64 bit base/index expression
/var/tmp//cczusVzF.s:56854: Error: `-1(%ebx)' is not a valid 64 bit base/index expression
/var/tmp//cczusVzF.s:56857: Error: `ff_h264_norm_shift(%ecx)' is not a valid 64 bit base/index expression
/var/tmp//cczusVzF.s:56888: Error: `ff_h264_lps_range(%eax,%esi,2)' is not a valid 64 bit base/index expression
/var/tmp//cczusVzF.s:56898: Error: `ff_h264_norm_shift(%esi)' is not a valid 64 bit base/index expression
/var/tmp//cczusVzF.s:56900: Error: `ff_h264_mlps_state+128(%eax)' is not a valid 64 bit base/index expression
/var/tmp//cczusVzF.s:56912: Error: `-1(%ebx)' is not a valid 64 bit base/index expression
/var/tmp//cczusVzF.s:56915: Error: `ff_h264_norm_shift(%ecx)' is not a valid 64 bit base/index expression
gmake: *** [libavcodec/h264.o] Error 1
```


----------



## blah (Jul 6, 2009)

wonslung said:
			
		

> When you say use a more recent compiler/assembler which would you suggest for FreeBSD 7.2-Stable AMD64?


devel/cross-binutils (2.19) and lang/gcc44. Then create some directory in your PATH and place symlinks for at least gcc(1) and as(1), e.g.
`$ ln -s /usr/local/bin/amd64-freebsd7-as $HOME/local/bin/as`
`$ ln -s /usr/local/bin/gcc44 $HOME/local/bin/gcc`
`$ ln -s /usr/local/bin/gcc44 $HOME/local/bin/cc`


----------



## wonslung (Jul 6, 2009)

blah said:
			
		

> devel/cross-binutils (2.19) and lang/gcc44. Then create some directory in your PATH and place symlinks for at least gcc(1) and as(1), e.g.
> `$ ln -s /usr/local/bin/amd64-freebsd-as $HOME/local/bin/as`
> `$ ln -s /usr/local/bin/gcc44 $HOME/local/bin/gcc`
> `$ ln -s /usr/local/bin/gcc44 $HOME/local/bin/cc`



thanks, i will try this and report back

edit:

devel/cross-binutils won't install, i get this error


```
===>  cross-binutils-2.19.1 you should define TGTARCH and TGTABI to build port.
*** Error code 1
```

i'm installing gcc44 now


----------



## blah (Jul 6, 2009)

wonslung said:
			
		

> devel/cross-binutils won't install, i get this error
> 
> 
> 
> ...


Try [cmd=]make install clean TGTARCH=amd64 TGTABI=freebsd7[/cmd]


----------



## wonslung (Jul 6, 2009)

ok, thanks so much man, i appreciate your help, and the non-flaming of it all.

Question, i understand how to make a symbolic link but i'm not exactly sure where i'm supposed to make it TO 

should i create a new PATH other than what i've been using?  i've never created one before, right now i've got the source code at /usr/local/src and i'm logged in as root.

thanks


ok, i think i figured it out

in /.cshrc i added /usr/local/src/bin to the set path  (because i'm doing this as root and shouldnt' ever need to do this more than once)

then i made the links you suggested
will try to build it again.  do i still use gmake?

well i'm obviously doing something wrong, but i feel like i'm getting much closer thanks to your help.

i've got both ports installed, but chances are i'm just not using them correctly.


----------



## wonslung (Jul 6, 2009)

ok, i FINALLY got this to compile, what i did was this:

```
set env CFLAGS=-m64
set env LDFLAGS=-m64
./configure --arch=x86_64 --cpu=nocona
echo '#define BROKEN_RELOCATIONS 1' >> config.h
gmake
```

now let me see if it will survive the gmake install

edit:

ok, it installed....now i have NO IDEA if it's working and i don't know how to TEST it from command line...i still have a long ways to go to get what i need working but i am one major step closer, thanks so MUCH for all your help, i'm not sure if those ports were what made it work or not but i DID learn a lot.


----------



## blah (Jul 6, 2009)

wonslung said:
			
		

> [cmd=]echo '#define BROKEN_RELOCATIONS 1' >> config.h[/cmd]


Unless you don't mind disabled SSSE3 support in libavcodec in ffmpeg/mplayer you need to make sure that `gcc --version' and `as --version' produce desired output.


----------



## wonslung (Jul 6, 2009)

i'm not quite sure what you mean.....
is this what you mean?

```
[root@jail /usr/home/wonslung]# gcc --version
gcc (GCC) 4.2.1 20070719  [FreeBSD]
Copyright (C) 2007 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.

[root@jail /usr/home/wonslung]# as -version
GNU assembler 2.15 [FreeBSD] 2004-05-23
Copyright 2002 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License.  This program has absolutely no warranty.
This assembler was configured for a target of `x86_64-obrien-freebsd'.
```


----------



## blah (Jul 6, 2009)

Yes, that. PATH environment variable should contain directory with those symlinks so that they appear **before** gcc/as in /usr/bin.
	
	



```
$ \which -a gcc
/home/luser/local/bin/gcc
/usr/bin/gcc

$ \which -a as
/home/luser/local/bin/as
/usr/bin/as

$ gcc --version
gcc (GCC) 4.4.1 20090630 (prerelease)
Copyright (C) 2009 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.

$ as --version
GNU assembler (GNU Binutils) 2.19.1
Copyright 2007 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or later.
This program has absolutely no warranty.
```
It's not smth new if you came from linux background. But perhaps you still need to read environ(7) and/or tcsh(1) for files shell reads at startup.


----------



## wonslung (Jul 6, 2009)

ok, thanks for your patience with me.

So because i built it with 4.1 i need to create new path, then i need to to set that with the set PATH variable in my .cshrc file.  

then i need to rebuild ffmpeg-mt and mplayer correct?

do i still use gmake? i'm really sorry for not understanding 100%...i was able to get it compiled and installed but i'm fairly sure i DID NOT use gcc44 or the cross-binutils because i couldn't seem to get it set properly, though i DID get them to install.



i'm seeing they are both installed, similar to what you're showing but when i type JUST gcc --version it's NOT the one i installed in my path.....

heres the output....maybe i did something wrong

```
[wonslung@jail /home/wonslung]# gcc --version
gcc (GCC) 4.2.1 20070719  [FreeBSD]
Copyright (C) 2007 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.

[wonslung@jail /home/wonslung]# as --version
GNU assembler 2.15 [FreeBSD] 2004-05-23
Copyright 2002 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License.  This program has absolutely no warranty.
This assembler was configured for a target of `x86_64-obrien-freebsd'.
[wonslung@jail /home/wonslung]#
[wonslung@jail /home/wonslung]#
[wonslung@jail /home/wonslung]# \which -a gcc
/usr/bin/gcc
/usr/local/src/bin/gcc
[wonslung@jail /home/wonslung]# \which -a as
/usr/bin/as
/usr/local/src/bin/as
[wonslung@jail /home/wonslung]# /usr/local/src/bin/as --version
GNU assembler (GNU Binutils) 2.19.1
Copyright 2007 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or later.
This program has absolutely no warranty.
This assembler was configured for a target of `amd64-freebsd7'.
[wonslung@jail /home/wonslung]#
[wonslung@jail /home/wonslung]# /usr/local/src/bin/gcc --version
gcc (GCC) 4.4.1 20090601 (prerelease)
Copyright (C) 2009 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.
```

edit

i figured out how to set it MANUALLy with setenv PATH
i needed to put the most important ones first and it worked


----------



## wonslung (Jul 6, 2009)

thanks again
before

```
FFmpeg version git-00425e9, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: --arch=x86_64 --cpu=nocona
  libavutil     50. 3. 0 / 50. 3. 0
  libavcodec    52.33. 0 / 52.33. 0
  libavformat   52.36. 0 / 52.36. 0
  libavdevice   52. 2. 0 / 52. 2. 0
  libswscale     0. 7. 1 /  0. 7. 1
  built on Jul  6 2009 06:12:18, gcc: 4.2.1 20070719  [FreeBSD]
```
and after

```
FFmpeg version git-00425e9, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: --arch=x86_64 --cpu=nocona
  libavutil     50. 3. 0 / 50. 3. 0
  libavcodec    52.33. 0 / 52.33. 0
  libavformat   52.36. 0 / 52.36. 0
  libavdevice   52. 2. 0 / 52. 2. 0
  libswscale     0. 7. 1 /  0. 7. 1
  built on Jul  6 2009 09:56:38, gcc: 4.4.1 20090601 (prerelease)
```


----------



## blah (Jul 6, 2009)

FYI, setting PATH in startup scripts can potentially break things like building certain ports and kernel/world. So don't report about them unless you're sure that you build them using default compiler/assembler.


----------



## wonslung (Jul 6, 2009)

yes. i much prefer setting them manually anyways.  The last thing i need is forgetting that i have them set and spending 2 days scratching my head.

I just used setenv PATH 

put the new path first, then all the other ones with colons inbetween per the links you gave me.


----------

