2006-03-17 Stepan Kasal * tests/local.at (AT_CHECK_MACRO_CROSS): New macro, creates two tests: the first one is usual AT_CHECK_MACRO test, the second one checks that the same works when cross-compiling. * tests/semantics.at (AC_CHECK_ALIGNOF, AC_CHECK_ALIGNOF struct): (AC_CHECK_SIZEOF, AC_CHECK_SIZEOF struct): Use it. Index: tests/local.at =================================================================== RCS file: /cvsroot/autoconf/autoconf/tests/local.at,v retrieving revision 1.25 diff -u -r1.25 local.at --- tests/local.at 6 Jan 2006 00:11:16 -0000 1.25 +++ tests/local.at 17 Mar 2006 17:51:05 -0000 @@ -425,6 +425,22 @@ ])# AT_CHECK_MACRO +# AT_CHECK_MACRO_CROSS(MACRO, [MACRO-USE], [ADDITIONAL-CMDS], +# [AUTOCONF-FLAGS = -W obsolete]) +# ----------------------------------------------------------- +# Like the previous one, but creates two checks: for native +# compile and for cross-compile. +m4_define([AT_CHECK_MACRO_CROSS], +[AT_CHECK_MACRO($@) +AT_CHECK_MACRO([$1 (cross compile)], + [AT_KEYWORDS([cross]) + # Exercise the code used when cross-compiling + cross_compiling=yes + m4_default([$2], [$1])], + [$3], [$4]) +]) + + # AT_CHECK_AU_MACRO(MACRO) # ------------------------ # Create a minimalist configure.ac running the macro named Index: tests/semantics.at =================================================================== RCS file: /cvsroot/autoconf/autoconf/tests/semantics.at,v retrieving revision 1.54 diff -u -r1.54 semantics.at --- tests/semantics.at 11 Mar 2006 13:22:42 -0000 1.54 +++ tests/semantics.at 17 Mar 2006 17:51:05 -0000 @@ -244,8 +244,7 @@ # AC_CHECK_ALIGNOF # ---------------- -# Not cross-compiling. -AT_CHECK_MACRO([AC_CHECK_ALIGNOF], +AT_CHECK_MACRO_CROSS([AC_CHECK_ALIGNOF], [[AC_CHECK_ALIGNOF(char) AC_CHECK_ALIGNOF(charchar, [[#include @@ -260,29 +259,9 @@ ])]) -# AC_CHECK_ALIGNOF -# ---------------- -AT_CHECK_MACRO([AC_CHECK_ALIGNOF], -[[# Exercise the code used when cross-compiling -cross_compiling=yes -AC_CHECK_ALIGNOF(char) -AC_CHECK_ALIGNOF(charchar, -[[#include -#include -typedef char charchar[2];]]) -AC_CHECK_ALIGNOF(charcharchar) -]], -[AT_CHECK_DEFINES( -[#define ALIGNOF_CHAR 1 -#define ALIGNOF_CHARCHAR 1 -#define ALIGNOF_CHARCHARCHAR 0 -])]) - - # AC_CHECK_ALIGNOF struct # ----------------------- -# Not cross-compiling. -AT_CHECK_MACRO([AC_CHECK_ALIGNOF struct], +AT_CHECK_MACRO_CROSS([AC_CHECK_ALIGNOF struct], [[AC_CHECK_ALIGNOF([struct { char c; }]) AC_CHECK_ALIGNOF([struct nosuchstruct]) ]], @@ -292,26 +271,9 @@ 0, ignore) ]) - -# AC_CHECK_ALIGNOF struct -# ----------------------- -AT_CHECK_MACRO([AC_CHECK_ALIGNOF struct], -[[# Exercise the code used when cross-compiling -cross_compiling=yes -AC_CHECK_ALIGNOF([struct { char c; }]) -AC_CHECK_ALIGNOF([struct nosuchstruct]) -]], -[AT_CHECK([[grep "#define ALIGNOF_STRUCT___CHAR_C___ [^0]" config.h]], - 0, ignore) -AT_CHECK([[grep "#define ALIGNOF_STRUCT_NOSUCHSTRUCT 0" config.h]], - 0, ignore) -]) - - # AC_CHECK_SIZEOF # --------------- -# Not cross-compiling. -AT_CHECK_MACRO([AC_CHECK_SIZEOF], +AT_CHECK_MACRO_CROSS([AC_CHECK_SIZEOF], [[AC_CHECK_SIZEOF(char) AC_CHECK_SIZEOF(charchar,, [[#include @@ -325,28 +287,9 @@ ])]) -# AC_CHECK_SIZEOF -# --------------- -AT_CHECK_MACRO([AC_CHECK_SIZEOF], -[[# Exercise the code used when cross-compiling -cross_compiling=yes -AC_CHECK_SIZEOF(char) -AC_CHECK_SIZEOF(charchar,, -[[#include -typedef char charchar[2];]]) -AC_CHECK_SIZEOF(charcharchar) -]], -[AT_CHECK_DEFINES( -[#define SIZEOF_CHAR 1 -#define SIZEOF_CHARCHAR 2 -#define SIZEOF_CHARCHARCHAR 0 -])]) - - -# AC_CHECK_SIZEOF structs -# ----------------------- -# Not cross-compiling. -AT_CHECK_MACRO([AC_CHECK_SIZEOF struct], +# AC_CHECK_SIZEOF struct +# ---------------------- +AT_CHECK_MACRO_CROSS([AC_CHECK_SIZEOF struct], [[AC_C_CONST AC_CHECK_SIZEOF([struct { char c; int x; }]) AC_CHECK_SIZEOF([const struct { const char *p; int x; }]) @@ -361,25 +304,6 @@ ]) -# AC_CHECK_SIZEOF -# --------------- -AT_CHECK_MACRO([AC_CHECK_SIZEOF struct], -[[# Exercise the code used when cross-compiling -cross_compiling=yes -AC_C_CONST -AC_CHECK_SIZEOF([struct { char c; int x; }]) -AC_CHECK_SIZEOF([const struct { const char *p; int x; }]) -AC_CHECK_SIZEOF([struct nosuchstruct]) -]], -[AT_CHECK([[grep "#define SIZEOF_STRUCT___CHAR_C__INT_X___ [^0]" config.h]], - 0, ignore) -AT_CHECK([[grep "#define SIZEOF_CONST_STRUCT___CONST_CHAR_PP__INT_X___ [^0]" config.h]], - 0, ignore) -AT_CHECK([[grep "#define SIZEOF_STRUCT_NOSUCHSTRUCT 0" config.h]], - 0, ignore) -]) - - # AC_CHECK_TYPES # -------------- # Check that it performs the correct actions.