which compiler was a package built with?

Specifically, I’d like to determine how to find out which version of what Fortran was used to build the fftw libraries on the build service repo.

In general, how do I determine this on my own? Is there a command to run on the library to give this or is this info given in one of the yast repo fields?

Thanks!

AFAIK.You cant, unless the software gathers that information at compile time, and stores it somewhere.
HTH.

On Tue, 05 Aug 2008 13:46:03 GMT
Neophyte42 <Neophyte42@no-mx.forums.opensuse.org> wrote:

>
> Specifically, I’d like to determine how to find out which version of
> what Fortran was used to build the fftw libraries on the build service
> repo.
>
> In general, how do I determine this on my own? Is there a command to
> run on the library to give this or is this info given in one of the
> yast repo fields?
>
> Thanks!
>
>

I know that the current fftw libraries are compiled using the current
compiler version.

Please excuse my asking, but what need prompts you to try to determine the
compiler version involved with creating a library?

I could imagine needing to know if an older compiler was used that had a
serious bug which caused erroneous code to be produced… but that would be
easily fixed by using a compiler which didn’t have that bug… presumably,
the most recent.

You could infer a general timeframe for a library’s creation by indexing
the library dependencies it has. Older libraries which have not been
recompiled would have correspondingly older references to glibc, libmath, etc.
That’s a lot of effort though… why not just recompile the library if it’s
problematic to have/use the older library.

In the “old days”, you could determine which compiler was used by examining
chunks of code for known compilation blocks. Optimization ability has
increased dramatically in the last few years, producing smaller, more compact
code utilizing more intelligent usage of registers, stack and memory. It is
no longer trivially possible to truly identify a compiler by its output.

Just curious.

===================

Oh, found it! I knew I’d seen it somewhere…

for any ELF executable or library, the following command will display the
contents of the .comment section in the file if it exists. This section
contains information concerning the compiler used to create the file.

readelf -p .comment filename

Replace ‘filename’ as appropriate.

Hope this helps.

Loni


L R Nix
lornix@lornix.com

I wanted to know, specifically, whether fftw was built with g77 or gfortran (4.3) because I’m using codes that use Cray pointer extensions that are supported by gfortran but not g77.

Further, it seems like gfortran 4.3 made some significant changes in its inherant library structure, as trying to use acml 4.1.0 (built with gfortran 4.2) gives a bunch of undefined references when trying to link (using gfortran 4.3) acml 4.1.0 to code compiled with gfortran 4.3.

I’ve since just tried linking to the repo fftw and it seems to work, but was just wondering. Can it at least be taken for granted that something in the 11.0 repo was built with a compiler within the version span of the version shipped on cd - current repo version?

On Thu, 21 Aug 2008 19:46:01 GMT
Neophyte42 <Neophyte42@no-mx.forums.opensuse.org> wrote:

> I’ve since just tried linking to the repo fftw and it seems to work,
> but was just wondering. Can it at least be taken for granted that
> something in the 11.0 repo was built with a compiler within the version
> span of the version shipped on cd - current repo version?
>
>

Yes.

Loni


L R Nix
lornix@lornix.com
Short, Sweet, to the point.