[MacPorts] #32627: nusmv: universal variant fails
MacPorts
noreply at macports.org
Thu Dec 22 04:33:35 PST 2011
#32627: nusmv: universal variant fails
-------------------------------------+--------------------------------------
Reporter: ryandesign@… | Owner: mww@…
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version: 2.0.3
Keywords: universal | Port: nusmv
-------------------------------------+--------------------------------------
main.log says:
{{{
:info:configure checking for MiniSat_Create in -lMiniSat... no
:info:configure configure: error: MiniSat library not found in
/opt/local/var/macports/build/_Users_rschmidt_macports_dports_devel_nusmv/nusmv/work/NuSMV-2.5.4/MiniSat/minisat
}}}
config.log says:
{{{
configure:21259: checking for MiniSat_Create in -lMiniSat
configure:21295: ccache /usr/bin/gcc-4.2 -std=gnu99 -o conftest -fno-
strict-aliasing -pipe -O2 -arch x86_64 -arch i386 -I/opt/local/include
-L/opt/local/lib -arch x86_64 -arch i386 conftest.c -lMiniSat
-L/opt/local/var/macports/build/_Users_rschmidt_macports_dports_devel_nusmv/nusmv/work/NuSMV-2.5.4/MiniSat/minisat
-lstdc++ -lm >&5
ld: warning: in
/opt/local/var/macports/build/_Users_rschmidt_macports_dports_devel_nusmv/nusmv/work/NuSMV-2.5.4/MiniSat/minisat/libMiniSat.a,
file was built for unsupported file format which is not the architecture
being linked (i386)
Undefined symbols for architecture i386:
"_MiniSat_Create", referenced from:
_main in ccKlyUhX.o
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status
lipo: can't open input file: /var/tmp//ccjlyCnC.out (No such file or
directory)
configure:21302: $? = 1
}}}
This can be fixed by replacing `${configure.cc_archflags}` with
`[get_canonical_archflags cc]` and `${configure.cxx_archflags}` with
`[get_canonical_archflags cxx]`, but that's not the whole story, and I
don't believe that results in correct software.
I'm also concerned about these lines from main.log:
{{{
:info:configure checking size of void *... 8
:info:configure checking size of int... 4
:info:configure checking size of long... 8
:info:configure checking size of long long... 8
}}}
Those values would not necessarily be accurate for all of the
architectures being built.
I'm also concerned about these lines from the Portfile:
{{{
if {$build_arch == "x86_64"} {
system -W ${worksrcpath}/cudd-2.4.1.1 "mv Makefile_os_x_64bit
Makefile_os_x"
}
}}}
Shouldn't this take effect for ppc64 as well, not just for x86_64?
And what about universal builds? The difference between the two Makefiles
is:
{{{
-XCFLAGS = -DHAVE_IEEE_754 -DBSD -D__MAC_OS_X__
-DNUSMV_SIZEOF_VOID_P=4 -DNUSMV_SIZEOF_LONG=4 -DNUSMV_SIZEOF_INT=4
+XCFLAGS = -DHAVE_IEEE_754 -DBSD -D__MAC_OS_X__
-DNUSMV_SIZEOF_VOID_P=8 -DNUSMV_SIZEOF_LONG=8 -DNUSMV_SIZEOF_INT=4
}}}
So that definitely doesn't fly for e.g. i386/x86_64 universal builds.
''If'' only the cudd portion of this build process has these assumptions
about bit size, then we could write our own muniversal-esque build-and-
lipo process just for the cudd part. But `grep`ping the source for
"`NUSMV_SIZEOF`" does not give me the impression that this is the case.
Otherwise, if also the minisat and the main nusmv parts have similar
issues, we could use the muniversal portgroup, though we'd still need our
own code to properly deal with running the pre-configure part for each
architecture.
--
Ticket URL: <https://trac.macports.org/ticket/32627>
MacPorts <http://www.macports.org/>
Ports system for Mac OS
More information about the macports-tickets
mailing list