Opened 11 years ago

Closed 11 years ago

#41286 closed defect (invalid)

fftw-3-single not built correctly

Reported by: bill.6@… Owned by: skymoo (Adam Mercer)
Priority: Normal Milestone:
Component: ports Version: 2.2.1
Keywords: Cc:
Port: fftw-3-single

Description

The port of fftw-3 for single precision float appears to not be built with the --enable-float configure switch.

This means that the library has the wrong names and implementation for the API functions. They are _fftw... where they should be _sfftw...

Change History (7)

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

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

comment:2 Changed 11 years ago by skymoo (Adam Mercer)

The Portfile says the --enable-float option is being passed to configure in fftw-3-single. Also code which I use, that requires single precision FFTW3, compiles without issue. Are you seeing otherwise?

comment:3 Changed 11 years ago by bill.6@…

OK, I've looked at this more carefully.

The problem seems to be that the configure has been done with --disable-fortran. This is not the default and the overhead of building the legacy Fortran wrappers is small so I'm not sure why it has been chosen.

The fftw-3-single portfile has --enable-fortran but the dependent fftw-3 has --disable-fortran.

Is it possible that the dependent configure arguments are overriding the dependee.

I am building old code that uses the legacy Fortran function names which start with _sfftw for single precision.

Whatever is happening, I would say that using --enable-fortran (or nothing as it is the default) would be best and will not break any ones builds.

comment:4 Changed 11 years ago by bill.6@…

Also note that if a Fortran compiler isn't available at configure time then the default legacy Fortran wrappers are not built.

Maybe the port was built without a Fortran compiler being available?

comment:5 Changed 11 years ago by skymoo (Adam Mercer)

By default the fortran wrappings aren't built as Xcode doesn't contain a fortran compiler. If you use one of the compiler variants then the fortran bindings are built.

comment:6 Changed 11 years ago by bill.6@…

Ah OK.

That's pretty painful. I've had to install the whole gcc48 port to get a Fortran compiler, massive duplication with Xcode command line tools. Also minor annoyance as I've ended up with a Fortran compiler that CMake can't find without help (export FC=gfortran-mp-4.8).

Well at least it works, shame the port couldn't use the gfortran I had installed (from HPC) like the standard FFTW3 configure does. Or better still a gcc4.8 gfortran port without all the rest of the gcc compilers.

Ok, you can close this but what a waste of time and disk space :(

comment:7 Changed 11 years ago by skymoo (Adam Mercer)

Resolution: invalid
Status: newclosed
Note: See TracTickets for help on using tickets.