[MacPorts] #57462: gstreamer1-gst-plugins-base 1.14.4: fails to build under OSX 10.11.6
MacPorts
noreply at macports.org
Mon Oct 29 01:07:01 UTC 2018
#57462: gstreamer1-gst-plugins-base 1.14.4: fails to build under OSX 10.11.6
------------------------------------------+--------------------
Reporter: thetrial | Owner: (none)
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version: 2.5.4
Resolution: | Keywords: sse2
Port: gstreamer1-gst-plugins-base |
------------------------------------------+--------------------
Comment (by mopihopi):
The build fails with the combination of +universal and +x11.
Unfortunately +universal now forces +x11. However if the line "variant
universal requires x11 {}" is commented out in the Portfile then a
+universal build (without +x11) builds successfully (although then bug
#57020 will be back).
It appears that the problem is caused by configure setting HAVE_SSE and
HAVE_SSE2 but not HAVE_X86. Because HAVE_SSE and HAVE_SSE2 are set it
will attempt to call the sse and sse2 versions of the functions, however
because HAVE_X86 is not set the source files containing those functions
are not built.
HAVE_X86 is set by configure if `__i386__` is declared or `__x86_64__` is
declared, but configure determines that these are not declared:
{{{
:info:configure checking whether __i386__ is declared... no
:info:configure checking whether __x86_64__ is declared... no
:info:configure checking to see if compiler understands -msse... yes
:info:configure checking to see if compiler understands -msse2... yes
:info:configure checking to see if compiler understands -msse4.1... yes
}}}
This is because the configure tests are compiled in universal mode, so
each test fails (because it fails for one of the architectures):
{{{
configure:23945: checking whether __i386__ is declared
configure:23945: /usr/bin/clang -c -pipe -Os -std=c99 -arch x86_64 -arch
i386 -I/opt/local/include conftest.c >&5
conftest.c:89:10: error: use of undeclared identifier '__i386__'
(void) __i386__;
^
1 error generated.
}}}
Without +x11, there are two builds (one for i386 and one for x86_64) each
with their own configure run, and the objects are combined at the end.
This approach builds correctly.
--
Ticket URL: <https://trac.macports.org/ticket/57462#comment:10>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list