Re: linking qsort with gfortran

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 22/12/12 01:58, dlr13@xxxxxxx wrote:
> First, apologies if this question has been answered elsewhere or I am doing something really stupid.  I have searched for several hours for a solution to my problem with no success.
>
> I am trying to do a GCC build of a mix of C and Fortran source that has been successfully compiled for many years with both the PGI and Intel compilers. I have one Fortran routine that calls "qsort", a sorting routine provided in most libraries. I know it is provided in the GCC libraries. However, because the call is from Fortran code, it will properly link with the library and I get this error:
>
> Undefined symbols for architecture x86_64:
>   "_qsort_", referenced from:
>
> I understand that the trailing underscore is the problem, but I cannot use the "no-underscoring" compiler flags because the code also links to other libraries that do provide the underscore which then breaks everything else.  I am using gfortran to do the linking though I get the same error with gcc.  I am using version 4.8 currently but get the same error with 4.7. Everything is on OS X, 10.7.
>
> Any help would be greatly appreciated.  Thank you.
>
> _____
> David

I would just add a C file wrapping one to the other:
#include <stdlib.h>

void qsort_(void *base, size_t nmemb, size_t size, int (*compar)(const
void *, const void *)) {
     return qsort(base, nmemb, size, compar);
}

It is possible to make _qsort_ an alias for _qsort, but it would take me
more time to dig the reference than making such stub :)



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux