Re: [AD] errno_t and strerror_s non-standard types - cmake incorrectly detects strerror_s when not present

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


We could replace the check with a compile test to be sure (see, e.g. the check for ALLEGRO_HAVE_PROCFS_ARGCV).

The way the check works is that it tries to find it at link time, but perhaps it's in a different header or needs some macro defined to be enabled.

If the second is true, we'll need a compile test to determine the macro anyway, so I think using a compile test is probably what's best here.

Alternatively, could this be yet another MinGW bug that you've uncovered?

-SL

On 11/30/2016 03:58 PM, Edgar Reynaldo wrote:
I recently updated cmake to the latest version (3.7.1) after finding out
that cmake is incorrectly detecting strerror_s in MinGW 5.3.0 when it
doesn't exist in MinGW.

errno_t and strerror_s are used in file_stdio.c on line 302 when
ALLEGRO_HAVE_STRERROR_S is defined. It is defined by a check for
"check_function_exists(strerror_s ALLEGRO_HAVE_STRERROR_S)" on line 486
of CMakeLists.txt. strerror_s and errno_t are nowhere to be found in
MinGW as indicated by a comment in file_stdio.c on line 289.

Not sure how to fix this, but currently Allegro fails to build on MinGW
because of the faulty detection by CMake.

Edgar



_______________________________________________
Allegro-developers mailing list
Allegro-developers@xxxxxxxxxx
https://mail.gna.org/listinfo/allegro-developers




Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/