Opened 7 years ago

Closed 6 years ago

Last modified 6 years ago

#40154 closed defect (fixed)

libvpx: don't depend on yasm on PowerPC

Reported by: ballapete (Peter Dyballa) Owned by: dbevans (David B. Evans)
Priority: Low Milestone:
Component: ports Version: 2.2.99
Keywords: powerpc Cc: ryandesign (Ryan Schmidt), larryv (Lawrence Velázquez)
Port: libvpx

Description

The description tells:

Description:          A modular x86/amd64 assembler supporting NASM and GAS asm syntaxes and a
                      variety of output formats. It is licensed under the 3-clause BSD license
                      except the nasm preprocessor which is LGPL.

so it's pretty useless on PPC hardware – except, maybe, one wants to build an universal binary. This is not the case for default libvpx (or gd2) port, so there is no reason to install it or to make standard libvpx depend on yasm.

lipo -detailed_info /opt/local/lib/libvpx.a
input file /opt/local/lib/libvpx.a is not a fat file
Non-fat file: /opt/local/lib/libvpx.a is architecture: ppc

Attachments (1)

patch-libvpx-1.4.0.diff (13.7 KB) - added by dbevans (David B. Evans) 6 years ago.
Proposed upgrade to libvpx-1.4.0 with yasm dependency fix

Download all attachments as: .zip

Change History (13)

comment:1 Changed 7 years ago by ryandesign (Ryan Schmidt)

Cc: ryandesign@… added
Keywords: powerpc added; yasm gd2 PPC x86/amd64 removed
Summary: Why is yasm installed on PPC Tiger, Mac OS X 10.4.11?libvpx: don't depend on yasm on PowerPC

Sounds like a reasonable request.

libvpx will use yasm if available, and try to use nasm (which is included in OS X) otherwise. I verified that on Mountain Lion, the build fails using nasm, so yasm is definitely required there. I'll test on PowerPC and see what happens without yasm there.

comment:2 in reply to:  description Changed 7 years ago by ballapete (Peter Dyballa)

The same happens on PPC Leopard, Mac OS X 10.5.8.

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

Owner: changed from macports-tickets@… to devans@…

comment:4 Changed 6 years ago by dbevans (David B. Evans)

Status: newassigned

While I understand the motivation behind the request, but removing yasm on PPC platforms won't do much unless a reasonable replacement that builds successfully on these platforms can be provided. Although, I am the libvpx maintainer, I don't have access to any PPC systems at this point so I must reply on those who do to help test and debug any proposed solution.

So please be patient while I come up to speed on this issue. It would be helpful to clarify exactly what works and what doesn't and how that is accomplished. The initial report here seems to imply that building without yasm works on Tiger at least, but later it is reported that nasm does not work on Leopard. A precise statement of results on the different PPC platforms using specific configurations including build logs and patches where appropriate would be helpful.

Thanks in advance for any help and thanks to ryandesign for bringing this issue to my attention.

comment:5 Changed 6 years ago by dbevans (David B. Evans)

As ryandesign has pointed out in #47907, libvpx 1.4.0 is now available.

In this version, the following PPC targets are explicitly supported

    ppc32-darwin8-gcc        ppc32-darwin9-gcc        
    ppc64-darwin8-gcc        ppc64-darwin9-gcc         

I plan to incorporate these PPC targets into the 1.4.0 update and will post a patch here for testing prior to committing the update. I'll be doing this pretty much in the blind, so those of you who have PPC platforms available, please let me know which of these targets you can test.

For darwin10+ yasm remains the assembler preferred upstream.

Thanks again.

Last edited 6 years ago by dbevans (David B. Evans) (previous) (diff)

comment:6 in reply to:  5 ; Changed 6 years ago by larryv (Lawrence Velázquez)

Cc: larryv@… added

I can test Rosetta builds on x86_64 Leopard and Snow Leopard.

comment:7 in reply to:  6 Changed 6 years ago by dbevans (David B. Evans)

Replying to larryv@…:

I can test Rosetta builds on x86_64 Leopard and Snow Leopard.

Great. See initial libvpx 1.4.0 test port attached to #47907. All testing help is gratefully received.

Changed 6 years ago by dbevans (David B. Evans)

Attachment: patch-libvpx-1.4.0.diff added

Proposed upgrade to libvpx-1.4.0 with yasm dependency fix

comment:8 Changed 6 years ago by dbevans (David B. Evans)

Proposed patch to upgrade libvpx to version 1.4.0 with fix for yasm dependency issue attached. See #47907 for discussion.

Would appreciate it if you could test this patch on darwin 8/9 ppc and verify that it does indeed fix the issue reported here. Note that yasm is required if an x86 target is specified so universal builds will still depend on yasm but, hopefully, non-universal builds will not.

comment:9 Changed 6 years ago by ryandesign (Ryan Schmidt)

Resolution: fixed
Status: assignedclosed

As far as I can tell, my proposed fix works, and the yasm dependency is now only added when building for an Intel arch. Committed in r137226.

comment:10 Changed 6 years ago by dbevans (David B. Evans)

Thanks for your reply, Ryan. I was hoping to get a response from the reporter of this ticket.

comment:11 Changed 6 years ago by ryandesign (Ryan Schmidt)

I also built libvpx 1.4.0 with this dependency change for ppc on Tiger without yasm installed, which worked fine.

I was not able to build universal ppc i386 on Tiger, but I think that affects all ports, because the apple-gcc42 port, which all ports use to compile on Tiger, only supports either all-Intel or all-PowerPC universal builds.

comment:12 in reply to:  8 Changed 6 years ago by ballapete (Peter Dyballa)

Replying to devans@…:

Proposed patch to upgrade libvpx to version 1.4.0 with fix for yasm dependency issue attached. See #47907 for discussion.

Would appreciate it if you could test this patch on darwin 8/9 ppc and verify that it does indeed fix the issue reported here. Note that yasm is required if an x86 target is specified so universal builds will still depend on yasm but, hopefully, non-universal builds will not.

Last month I had too many other things to do, sorry! Yesterday I could successfully update libvpx.

Note: See TracTickets for help on using tickets.