Opened 15 years ago

Closed 14 years ago

#8230 closed defect (duplicate)

MPlayer fails to build on Intel

Reported by: trejkaz@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 1.2
Keywords: Cc: clmason@…, alutii@…, technoweenie@…, dmvianna@…, markd@…
Port:

Description

"sudo port install mplayer" fails to compile MPlayer when run on an Intel Mac.

Error: Target com.apple.build returned: shell command "cd "/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_multimedia_MPlayer/work/MPlayer-1.0pre7try2" && LD=c++ make all" returned error 2 Command output: cc -c -I../libvo -I../../libvo -fno-PIC -O4 -march=i586 -mtune=i586 -pipe -ffast-math -fomit-frame-pointer -DSYS_DARWIN -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/opt/local/include -I. -I/opt/local/include -o mplayer.o mplayer.c mplayer.c: In function 'main': mplayer.c:1526: warning: pointer targets in passing argument 2 of 'vobsub_set_from_lang' differ in signedness mplayer.c:1590: warning: pointer targets in passing argument 2 of 'stream_read' differ in signedness mplayer.c:1609: warning: pointer targets in passing argument 2 of 'dvd_aid_from_lang' differ in signedness mplayer.c:1610: warning: pointer targets in passing argument 2 of 'dvd_sid_from_lang' differ in signedness mplayer.c:1651: warning: pointer targets in passing argument 1 of 'strrchr' differ in signedness mplayer.c:1651: warning: pointer targets in passing argument 1 of 'strrchr' differ in signedness mplayer.c:1651: warning: pointer targets in passing argument 1 of 'strrchr' differ in signedness mplayer.c:1651: warning: pointer targets in passing argument 1 of 'strrchr' differ in signedness mplayer.c:1660: warning: pointer targets in passing argument 1 of 'strrchr' differ in signedness mplayer.c:1660: warning: pointer targets in passing argument 1 of 'strrchr' differ in signedness mplayer.c:1660: warning: pointer targets in passing argument 1 of 'strrchr' differ in signedness mplayer.c:1660: warning: pointer targets in passing argument 1 of 'strrchr' differ in signedness mplayer.c:1660: warning: pointer targets in passing argument 2 of 'strcmp' differ in signedness mplayer.c:1662: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness mplayer.c:1667: warning: pointer targets in passing argument 2 of 'strcat' differ in signedness mplayer.c:1674: warning: pointer targets in passing argument 2 of 'play_tree_add_file' differ in signedness mplayer.c:2268: warning: pointer targets in passing argument 2 of 'decode_audio' differ in signedness mplayer.c:3891: warning: pointer targets in assignment differ in signedness mplayer.c:4018: warning: pointer targets in passing argument 1 of 'strcmp' differ in signedness mplayer.c:4019: warning: pointer targets in passing argument 1 of 'strncpy' differ in signedness {standard input}:8143:operands given don't match any known 386 instruction {standard input}:9911:operands given don't match any known 386 instruction make: * [mplayer.o] Error 1

Change History (15)

comment:1 Changed 15 years ago by blb@…

Owner: changed from darwinports-bugs@… to blb@…

I've just updated the MPlayer port to a cvs version, so this may be fixed in that. If not, the MPlayer project really needs to be informed of Intel Mac build failures.

comment:2 Changed 15 years ago by alutii@…

Cc: alutii@… added

Using the cvs version:

---> Building MPlayer with target all Error: Target com.apple.build returned: shell command "cd "/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_multimedia_MPlayer/work/MPlayer-cvs-20060408" && LD=c++ make all" returned error 2 Command output: In file included from mplayer.c:163: get_path.c: In function 'get_path': get_path.c:77: warning: pointer targets in passing argument 3 of 'CFURLGetFileSystemRepresentation' differ in signedness get_path.c:83: warning: pointer targets in passing argument 3 of 'CFURLGetFileSystemRepresentation' differ in signedness mplayer.c: In function 'main': mplayer.c:2713: warning: pointer targets in passing argument 2 of 'vobsub_set_from_lang' differ in signedness mplayer.c:2777: warning: pointer targets in passing argument 2 of 'stream_read' differ in signedness mplayer.c:2796: warning: pointer targets in passing argument 2 of 'dvd_aid_from_lang' differ in signedness mplayer.c:2798: warning: pointer targets in passing argument 2 of 'dvd_sid_from_lang' differ in signedness mplayer.c:2841: warning: pointer targets in passing argument 1 of 'strrchr' differ in signedness mplayer.c:2841: warning: pointer targets in passing argument 1 of 'strrchr' differ in signedness mplayer.c:2841: warning: pointer targets in passing argument 1 of 'strrchr' differ in signedness mplayer.c:2841: warning: pointer targets in passing argument 1 of 'strrchr' differ in signedness mplayer.c:2850: warning: pointer targets in passing argument 1 of 'strrchr' differ in signedness mplayer.c:2850: warning: pointer targets in passing argument 1 of 'strrchr' differ in signedness mplayer.c:2850: warning: pointer targets in passing argument 1 of 'strrchr' differ in signedness mplayer.c:2850: warning: pointer targets in passing argument 1 of 'strrchr' differ in signedness mplayer.c:2850: warning: pointer targets in passing argument 2 of 'strcmp' differ in signedness mplayer.c:2852: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness mplayer.c:2857: warning: pointer targets in passing argument 2 of 'strcat' differ in signedness mplayer.c:2864: warning: pointer targets in passing argument 2 of 'play_tree_add_file' differ in signedness mplayer.c:3475: warning: pointer targets in passing argument 2 of 'decode_audio' differ in signedness {standard input}:6244:operands given don't match any known 386 instruction {standard input}:7156:operands given don't match any known 386 instruction {standard input}:7688:operands given don't match any known 386 instruction {standard input}:9512:operands given don't match any known 386 instruction {standard input}:9573:operands given don't match any known 386 instruction {standard input}:12629:operands given don't match any known 386 instruction {standard input}:14314:operands given don't match any known 386 instruction make: * [mplayer.o] Error 1

Error: /opt/local/bin/port: Status 1 encountered during processing.

comment:3 Changed 15 years ago by technoweenie@…

Cc: technoweenie@… added

I filed a ticket on the Mplayer bugzilla and got this:

http://bugzilla.mplayerhq.hu/show_bug.cgi?id=484

Since mplayer.c does not contain any assembler code, this line:

{standard input}:6244:operands given don't match any known 386 instruction

means that your assembler can not parse the output of your compiler. Removing "-O4 -march=pentium3 -mtune=pentium3" from the CFLAGS might help, but it is just a workaround around a bug in yout toolchain (incompatible versions of gcc and binutils). So not a MPlayer bug.

comment:4 Changed 15 years ago by trejkaz@…

Very interesting.

Does this mean if we built GCC from ports, there would be a chance of it working? I didn't consider the possibility of it being the compiler.

comment:5 Changed 15 years ago by clmason@…

Cc: clmason@… added

comment:6 Changed 15 years ago by blb@…

Owner: changed from blb@… to darwinports-bugs@…

Dropped maintainership of MPlayer.

comment:7 Changed 15 years ago by dmvianna@…

Cc: dmvianna@… added

comment:8 Changed 14 years ago by meissnem@…

New version MPlayer is out, and it builds on my Intel iMac.

--- /opt/local/var/db/dports/sources/rsync.rsync.darwinports.org_dpupdate_dports/multimedia/MPlayer/Portfile    2006-08-30 00:24:13.000000000 -0500
+++ Portfile    2006-10-23 16:23:43.000000000 -0500
@@ -2,7 +2,7 @@
 
 PortSystem                     1.0
 name                           MPlayer
-version                                1.0pre8
+version                                1.0rc1
 categories                     multimedia
 maintainers                    darwinports@opendarwin.org
 description                    The Unix movie player
@@ -29,9 +29,9 @@
 use_bzip2                      yes
 
 checksums                      ${distname}${extract.suffix} \
-                                               md5 f82bb2bc51b6cd5e5dd96f88f6f98582 \
-                                               sha1 8a0929b84dcb37d47c062230ce693b64b3e30921 \
-                                               rmd160 23fd13fe75a5c4029ead043aa4b3b08fe5fe44f0
+                                               md5 18c05d88e22c3b815a43ca8d7152ccdc \
+                                               sha1 a450c0b0749c343a8496ba7810363c9d46dfa73c \
+                                               rmd160 8cea02e832aec5d9e090829d61d0f131dcc177a2
 
 depends_lib                    port:libpng port:jpeg port:lzo port:libvorbis \
                                        port:libmad port:lame
@@ -42,7 +42,7 @@
                                        --confdir=${prefix}/etc/${name} \
                                        --mandir=${prefix}/share/man \
                                        --enable-inet6 --enable-png --enable-jpeg \
-                                       --enable-liblzo --enable-vorbis --enable-mad \
+                                       --enable-liblzo --enable-libvorbis --enable-mad \
                                        --enable-mencoder --enable-largefiles\
                                        --disable-sdl --disable-x11 --disable-freetype \
                                        --disable-fontconfig --disable-gif --disable-arts \
@@ -180,7 +180,6 @@
 }
 
 platform darwin {
-       patchfiles-append       patch-Makefile
        build.env                       LD=cc
 }
 
@@ -190,3 +189,6 @@
        build.env                       LD=c++
 }
 
+platform i386 {
+       configure.args-append   --disable-mp3lib
+}

comment:9 Changed 14 years ago by danielluke (Daniel J. Luke)

Resolution: fixed
Status: newclosed

committed.

comment:10 Changed 14 years ago by fracai@…

Resolution: fixed
Status: closedreopened

MPlayer still fails to build with the newest port file.

The i386 platform section needs the additional --disable-win32 flag as posted in ticket:10948 and referenced at MPlayer News

With just the --disable-mp3lib from the most recent update I still get errors.

platform i386 {
       configure.args-append --disable-mp3lib --disable-win32
}

comment:11 Changed 14 years ago by markd@…

Cc: markd@… added

It copiles on my MacBook Pro. But if it should have that option then I can do that. Also, do you want to be maintainer?

comment:12 Changed 14 years ago by fracai@…

Interesting. I have an Intel iMac and I get errors that appear to be wine related, though I sure don't have it installed, or is that the problem? That I'm missing wine libraries?

What's your setup markd? Can you download the source from MPlayerHQ and post the output of your configure script, including the flags you pass? And then the output of make (well, make might be a bit excessive). I'd also be interested in hearing if your binary codecs are working.

With the report of success on an iMac and the portfile above, I wonder if I have a conflict installed (though MPlayerHQ implies --disable-win32 IS required) or the success stories have an additional port installed (wine?).

I'd maybe be interested in co-maintaining mplayer with ecronin who has posted many updates at ticket:10948.

--->  Building MPlayer with target all
Error: Target com.apple.build returned: shell command "cd "/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_multimedia_MPlayer/work/MPlayer-1.0rc1" && LD=c++ make all" returned error 2
Command output: cc -I. -I.. -Wdeclaration-after-statement -fno-PIC -O4
-march=pentium-m -mtune=pentium-m -pipe -ffast-math -fomit-frame-pointer -mdynamic-no-pic -falign-loops=16
-DSYS_DARWIN -DCONFIG_DARWIN -shared-libgcc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/opt/local/include -I/usr/X11R6/include -U_FILE_OFFSET_BITS 
-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -DMPLAYER -D__WINE__  -c pe_image.c
In file included from wine/winnt.h:1043,
                 from wine/winbase.h:5,
                 from pe_image.c:56:
wine/poppack.h:5: error: too many #pragma options align=reset
In file included from wine/winnt.h:1494,
                 from wine/winbase.h:5,
                 from pe_image.c:56:
wine/poppack.h:5: error: too many #pragma options align=reset
In file included from wine/winnt.h:2170,
                 from wine/winbase.h:5,
                 from pe_image.c:56:
wine/poppack.h:5: error: too many #pragma options align=reset
In file included from wine/winnt.h:2667,
                 from wine/winbase.h:5,
                 from pe_image.c:56:
wine/poppack.h:5: error: too many #pragma options align=reset
In file included from wine/winbase.h:1083,
                 from pe_image.c:56:
wine/poppack.h:5: error: too many #pragma options align=reset
In file included from wine/module.h:76,
                 from pe_image.c:60:
wine/poppack.h:5: error: too many #pragma options align=reset
In file included from pe_image.c:61:
wine/debugtools.h:67: warning: useless type name in empty declaration
pe_image.c: In function 'fixup_imports':
pe_image.c:315: warning: pointer targets in passing argument 2 of 'LookupExternalByName' differ in signedness
pe_image.c:336: warning: pointer targets in passing argument 2 of 'LookupExternalByName' differ in signedness
make[1]: *** [pe_image.o] Error 1
make: *** [loader/libloader.a] Error 2
Error: Status 1 encountered during processing.

comment:13 Changed 14 years ago by fracai@…

OK, the reason the --disable-win32 flag is required is that the mplayer config script autodetects the presence of /usr/local/lib/codecs (which I had installed before trying to compile mplayer from source) and enables binary codec support. If this directory is not there win32 codecs will be auto disabled.

It's probably still a good idea to add this flag to the port file, until binary codec compatibility is supported. When that happens it'd be a good idea to add a codec variant.

comment:14 Changed 14 years ago by adamw@…

The loader code that supports the win32 codecs is based upon Wine. That code, however, is broken on i386 Darwin.

If somebody has the codecs installed in /usr/local/lib/codecs, mplayer will not compile without --disable-win32. If somebody does NOT have the codecs installed, mplayer will automatically compile with --disable-win32.

Hence, adding the flag will make mplayer compile in i386-Darwin, and will not affect anybody else.

comment:15 Changed 14 years ago by danielluke (Daniel J. Luke)

Resolution: duplicate
Status: reopenedclosed

Further discussion should be in #10948

(and yes, it's all my fault)

Note: See TracTickets for help on using tickets.