This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libfortran/51646] Make libgfortran compile on Android


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51646

Tobias Burnus <burnus at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |burnus at gcc dot gnu.org

--- Comment #6 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-04-18 12:36:18 UTC ---
(In reply to comment #5)
> Another build problem at
> http://stackoverflow.com/questions/10202966/android-ndk-fortran-build-of-lapack-problems-with-unresolved-sincos

Judging from the line given at the stackoverflow posting, the problem is
related to:
  COMPLEX_ASSIGN (v, cosf (b), sinf (b));

Thus, the middle-end should convert this into a sincosf - but only if it is
available. Given that the compilation is for arm-linux-androideabi, I assume
that gcc/config/linux.h applies, which has:

/* Whether we have sincos that follows the GNU extension.  */
#undef TARGET_HAS_SINCOS
#define TARGET_HAS_SINCOS (OPTION_GLIBC || OPTION_BIONIC)

For Android/Bionic, one finds:
   /bionic/libc/docs/CHANGES.TXT
   ...
   Differences between Android 2.3 and Android 2.2:
   ...
   - <math.h>: Added sincos(), sincosf() and sincosl() (GLibc compatibility).

Cf. http://source-android.frandroid.com/bionic/libc/docs/CHANGES.TXT


Hence, there are two options:
a) Using a newer Bionic
b) Manually patch gcc/config/linux.h to simply claim that no sincos is
available.

The latter is what is also suggested at
https://bugs.launchpad.net/linaro-android/+bug/908125


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]