Opened 14 years ago

Closed 14 years ago

#24698 closed defect (fixed)

mlt fails to build

Reported by: steve@… Owned by: ddennedy (Dan Dennedy)
Priority: Normal Milestone:
Component: ports Version: 1.8.2
Keywords: Cc:
Port: mlt

Description (last modified by jmroot (Joshua Root))

I have been trying to install kdenlive for several days. The ffmpeg bug has been fixed. Now mlt fails to install. After the first failure I retried with the following sequence:

% sudo port selfupdate
% sudo port update outdated
% sudo port clean mlt
% sudo port install mlt # this failed so I retried with -d
% sudo port -d install mlt &>mlt.txt

Attachments (3)

mlt.txt (295.7 KB) - added by steve@… 14 years ago.
As requested this attachment is a more complete error log, this time following a clean
mlt-no-MMX.diff (676 bytes) - added by ryandesign (Ryan Carsten Schmidt) 14 years ago.
a potential solution
mlt.2.txt (105.6 KB) - added by steve@… 14 years ago.
I applied the patch to the Portfile, did the usual clean drill and got a new error.

Download all attachments as: .zip

Change History (11)

comment:1 Changed 14 years ago by steve@…

Sorry. I am new at this. I didn't preview my report adequately. There is a typo in the keyword which should have been "kdenlive" and the port which should have been "mlt".

comment:2 Changed 14 years ago by jmroot (Joshua Root)

Description: modified (diff)
Keywords: kdenliv removed
Owner: changed from macports-tickets@… to dan@…
Port: mlt added; mtl removed
Priority: HighNormal

Please remember to cc the maintainer. As per the ticket guidelines, the High priority is reserved for the use of MacPorts team members.

comment:3 Changed 14 years ago by ryandesign (Ryan Carsten Schmidt)

It looks like it's having trouble with the MMX assembly code. Exactly what kind of Mac do you have -- what processor?

comment:4 Changed 14 years ago by steve@…

Mac OS X Version 10.6.3

Hardware Overview:

  Model Name:	Mac mini
  Model Identifier:	Macmini1,1
  Processor Name:	Intel Core Duo
  Processor Speed:	1.66 GHz
  Number Of Processors:	1
  Total Number Of Cores:	2
  L2 Cache:	2 MB
  Memory:	2 GB
  Bus Speed:	667 MHz
  Boot ROM Version:	MM11.0055.B08
  SMC Version (system):	1.3f4

Changed 14 years ago by steve@…

Attachment: mlt.txt added

As requested this attachment is a more complete error log, this time following a clean

comment:5 Changed 14 years ago by ryandesign (Ryan Carsten Schmidt)

I think the key is that you have a Mac with an Intel Core processor. This is a 32-bit processor, whereas 2nd generation and later Intel Macs are all 64-bit processors. And on Snow Leopard, code compiles 64-bit on 64-bit systems. On my 64-bit Intel Core 2 processor, mlt doesn't even try to build this have_mmx.S source file, so maybe the code is written to only compile on 32-bit systems, which would be why I didn't see the problem. There was also a change already made to the portfile to disable the MMX code on Tiger, as not explained at all in #21925. So it won't attempt to compile the MMX code on Tiger either. MMX is of course an extension to Intel processors, so it does not come into play on any PowerPC system. So the only system left to test is i386 Leopard. Either the MMX code works on i386 Leopard, which is why MMX was disabled on Tiger only, or it doesn't work there either, in which case we should just disable the MMX code all the time.

That would be, in any case, a quick workaround you could use to successfully build the port today, while we work out the final fix. I'll attach a patchfile.

Changed 14 years ago by ryandesign (Ryan Carsten Schmidt)

Attachment: mlt-no-MMX.diff added

a potential solution

Changed 14 years ago by steve@…

Attachment: mlt.2.txt added

I applied the patch to the Portfile, did the usual clean drill and got a new error.

comment:6 Changed 14 years ago by ddennedy (Dan Dennedy)

The fix for this is in the upgrade patch in ticket #25374.

Basically, this fixes the last reported problem. configure --disable-mmx implies disabling sse as well, but failed to disable sse2 when that configure option was added. In summary, the fix is that --disable-mmx now implies disabling sse and sse2, and the Portfile patch in the upgrade ticket contains the mlt-no-MMX.diff.

comment:7 Changed 14 years ago by ddennedy (Dan Dennedy)

There are 3 modules that contain MMX code directly within MLT. 2 of them do not have a problem on x86_64. Definitely, one of them has a problem with some versions of gcc, and its Makefile already disables its MMX on x86_64. I have not seen a problem on x86 on Linux, which is why it remained enabled for that. So, I plan to add a 'mmx' variant that removes the --disable-mmx option after the pending patches are committed. Then, x86_64 users can opt into that, but now the default is safer for all.

comment:8 Changed 14 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: newclosed

Thanks, fixed in r69077.

Note: See TracTickets for help on using tickets.