Opened 14 years ago

Closed 14 years ago

#25066 closed enhancement (fixed)

RFE: Allow arpack to build universal shared libraries

Reported by: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez) Owned by: mamoll (Mark Moll)
Priority: Normal Milestone:
Component: ports Version: 1.8.2
Keywords: universal shared libary Cc:
Port: arpack

Description

Attached is a proposed patch to arpack to allow shared libraries and a 32/64-bit universal build.

The g95 variant has been removed to facilitate this change.

Attachments (1)

Portfile.diff (6.1 KB) - added by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez) 14 years ago.

Download all attachments as: .zip

Change History (6)

Changed 14 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Attachment: Portfile.diff added

comment:1 Changed 14 years ago by mamoll (Mark Moll)

This fails with the +gcc43 and +universal variants. I get this error:

ld: warning: directory '/opt/local/lib/gcc43/i386' following -L not found
ld: warning: in /opt/local/lib/gcc43/libgfortran.dylib, file was built for unsupported file format which is not the architecture being linked (i386)

The gcc43 port doesn't seem to have a universal variant, but neither does gcc44. Maybe gcc4[34] doesn't need to be built as a universal binary to generate universal binaries?

comment:2 in reply to:  1 Changed 14 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Replying to mmoll@…:

This fails with the +gcc43 and +universal variants. I get this error:

ld: warning: directory '/opt/local/lib/gcc43/i386' following -L not found
ld: warning: in /opt/local/lib/gcc43/libgfortran.dylib, file was built for unsupported file format which is not the architecture being linked (i386)

The gcc43 port doesn't seem to have a universal variant, but neither does gcc44. Maybe gcc4[34] doesn't need to be built as a universal binary to generate universal binaries?

Sorry, gcc42 and gcc43 should conflict with universal (I am not sure why), but gcc44 works for me even though it is not universal itself.

comment:3 Changed 14 years ago by Veence (Vincent)

gcc43/44/45 will build universal (= 2-way i386/x86_64) binaries if they are compiled with the --enable-multilib option. Maybe that option is selected by default as of gcc44 and above. But for gcc43, you have to add it manually to the configure.options in the relevant Portfile.

comment:4 Changed 14 years ago by mamoll (Mark Moll)

The gcc44/gcc45 variants also conflict with the mpi variant, since openmpi doesn't have a universal variant (which means that libmpi_f77.dylib isn't available in all required architectures).

comment:5 Changed 14 years ago by mamoll (Mark Moll)

Resolution: fixed
Status: newclosed

Cleaned up and committed in r68322. Thanks for the patch.

Note: See TracTickets for help on using tickets.