mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-20 19:50:24 +02:00
check for iconveh values at configure-time
* configure.ac: Check for the iconveh values here, instead of relying on
gen-scmconfig to know them. That doesn't work in general because
gen-scmconfig runs on the build machine, not the target machine.
* libguile/Makefile.am (gen-scmconfig.$(OBJEXT)): Revert rule to the
revision before 533d8212
.
* libguile/gen-scmconfig.h.in (SCM_I_GSC_ICONVEH_ERROR):
(SCM_I_GSC_ICONVEH_QUESTION_MARK):
(SCM_I_GSC_ICONVEH_ESCAPE_SEQUENCE):
* libguile/gen-scmconfig.c: Use configure-time substitutions to set
SCM_ICONVEH_ERROR_HANDLER et al.
This commit is contained in:
parent
e6efefad08
commit
ad378da975
4 changed files with 76 additions and 12 deletions
64
configure.ac
64
configure.ac
|
@ -1191,6 +1191,70 @@ AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,,
|
||||||
GUILE_STRUCT_UTIMBUF
|
GUILE_STRUCT_UTIMBUF
|
||||||
|
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# What values do the iconv error handlers have?
|
||||||
|
#
|
||||||
|
# The only place that we need iconv in our public interfaces is for
|
||||||
|
# the error handlers, which are just ints. So we weaken our
|
||||||
|
# dependency by looking up those values at configure-time.
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
SCM_I_GSC_ICONVEH_ERROR=0
|
||||||
|
SCM_I_GSC_ICONVEH_QUESTION_MARK=1
|
||||||
|
SCM_I_GSC_ICONVEH_ESCAPE_SEQUENCE=2
|
||||||
|
AC_MSG_CHECKING([for iconveh_error])
|
||||||
|
AC_RUN_IFELSE([AC_LANG_SOURCE(
|
||||||
|
[AC_INCLUDES_DEFAULT
|
||||||
|
#include <uniconv.h>
|
||||||
|
int
|
||||||
|
main (int argc, char *argv[])
|
||||||
|
{
|
||||||
|
if (argc > 1)
|
||||||
|
printf ("%d\n", (int)iconveh_error);
|
||||||
|
return 0;
|
||||||
|
}])],
|
||||||
|
[SCM_I_GSC_ICONVEH_ERROR=`./conftest$EXEEXT pretty-please`
|
||||||
|
AC_MSG_RESULT([$SCM_I_GSC_ICONVEH_ERROR])],
|
||||||
|
[AC_MSG_FAILURE([failed to get iconveh_error])],
|
||||||
|
[AC_MSG_WARN([assuming $SCM_I_GSC_ICONVEH_ERROR for cross-compilation])])
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([for iconveh_question_mark])
|
||||||
|
AC_RUN_IFELSE([AC_LANG_SOURCE(
|
||||||
|
[AC_INCLUDES_DEFAULT
|
||||||
|
#include <uniconv.h>
|
||||||
|
int
|
||||||
|
main (int argc, char *argv[])
|
||||||
|
{
|
||||||
|
if (argc > 1)
|
||||||
|
printf ("%d\n", (int)iconveh_question_mark);
|
||||||
|
return 0;
|
||||||
|
}])],
|
||||||
|
[SCM_I_GSC_ICONVEH_QUESTION_MARK=`./conftest$EXEEXT pretty-please`
|
||||||
|
AC_MSG_RESULT([$SCM_I_GSC_ICONVEH_QUESTION_MARK])],
|
||||||
|
[AC_MSG_FAILURE([failed to get iconveh_question_mark])],
|
||||||
|
[AC_MSG_WARN([assuming $SCM_I_GSC_ICONVEH_QUESTION_MARK for cross-compilation])])
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([for iconveh_escape_sequence])
|
||||||
|
AC_RUN_IFELSE([AC_LANG_SOURCE(
|
||||||
|
[AC_INCLUDES_DEFAULT
|
||||||
|
#include <uniconv.h>
|
||||||
|
int
|
||||||
|
main (int argc, char *argv[])
|
||||||
|
{
|
||||||
|
if (argc > 1)
|
||||||
|
printf ("%d\n", (int)iconveh_escape_sequence);
|
||||||
|
return 0;
|
||||||
|
}])],
|
||||||
|
[SCM_I_GSC_ICONVEH_ESCAPE_SEQUENCE=`./conftest$EXEEXT pretty-please`
|
||||||
|
AC_MSG_RESULT([$SCM_I_GSC_ICONVEH_ESCAPE_SEQUENCE])],
|
||||||
|
[AC_MSG_FAILURE([failed to get iconveh_escape_sequence])],
|
||||||
|
[AC_MSG_WARN([assuming $SCM_I_GSC_ICONVEH_ESCAPE_SEQUENCE for cross-compilation])])
|
||||||
|
|
||||||
|
AC_SUBST([SCM_I_GSC_ICONVEH_ERROR])
|
||||||
|
AC_SUBST([SCM_I_GSC_ICONVEH_QUESTION_MARK])
|
||||||
|
AC_SUBST([SCM_I_GSC_ICONVEH_ESCAPE_SEQUENCE])
|
||||||
|
|
||||||
|
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# Which way does the stack grow?
|
# Which way does the stack grow?
|
||||||
|
|
|
@ -57,9 +57,7 @@ gen_scmconfig_SOURCES = gen-scmconfig.c
|
||||||
gen-scmconfig.$(OBJEXT): gen-scmconfig.c
|
gen-scmconfig.$(OBJEXT): gen-scmconfig.c
|
||||||
$(AM_V_GEN) \
|
$(AM_V_GEN) \
|
||||||
if [ "$(cross_compiling)" = "yes" ]; then \
|
if [ "$(cross_compiling)" = "yes" ]; then \
|
||||||
$(CC_FOR_BUILD) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
$(CC_FOR_BUILD) $(DEFS) $(DEFAULT_INCLUDES) $(AM_CPPFLAGS) -c -o $@ $<; \
|
||||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \
|
|
||||||
-c -o $@ $<; \
|
|
||||||
else \
|
else \
|
||||||
$(COMPILE) -c -o $@ $<; \
|
$(COMPILE) -c -o $@ $<; \
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -123,7 +123,6 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <uniconv.h>
|
|
||||||
|
|
||||||
#define pf printf
|
#define pf printf
|
||||||
|
|
||||||
|
@ -397,11 +396,11 @@ main (int argc, char *argv[])
|
||||||
|
|
||||||
pf ("\n");
|
pf ("\n");
|
||||||
pf ("/* Constants from uniconv.h. */\n");
|
pf ("/* Constants from uniconv.h. */\n");
|
||||||
pf ("#define SCM_ICONVEH_ERROR %d\n", (int) iconveh_error);
|
pf ("#define SCM_ICONVEH_ERROR %d\n", SCM_I_GSC_ICONVEH_ERROR);
|
||||||
pf ("#define SCM_ICONVEH_QUESTION_MARK %d\n",
|
pf ("#define SCM_ICONVEH_QUESTION_MARK %d\n",
|
||||||
(int) iconveh_question_mark);
|
SCM_I_GSC_ICONVEH_QUESTION_MARK);
|
||||||
pf ("#define SCM_ICONVEH_ESCAPE_SEQUENCE %d\n",
|
pf ("#define SCM_ICONVEH_ESCAPE_SEQUENCE %d\n",
|
||||||
(int) iconveh_escape_sequence);
|
SCM_I_GSC_ICONVEH_ESCAPE_SEQUENCE);
|
||||||
|
|
||||||
printf ("#endif\n");
|
printf ("#endif\n");
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,9 @@
|
||||||
#define SCM_I_GSC_NEED_BRACES_ON_PTHREAD_MUTEX_INITIALIZER @SCM_I_GSC_NEED_BRACES_ON_PTHREAD_MUTEX_INITIALIZER@
|
#define SCM_I_GSC_NEED_BRACES_ON_PTHREAD_MUTEX_INITIALIZER @SCM_I_GSC_NEED_BRACES_ON_PTHREAD_MUTEX_INITIALIZER@
|
||||||
#define SCM_I_GSC_HAVE_THREAD_STORAGE_CLASS @SCM_I_GSC_HAVE_THREAD_STORAGE_CLASS@
|
#define SCM_I_GSC_HAVE_THREAD_STORAGE_CLASS @SCM_I_GSC_HAVE_THREAD_STORAGE_CLASS@
|
||||||
#define SCM_I_GSC_HAVE_STRUCT_DIRENT64 @SCM_I_GSC_HAVE_STRUCT_DIRENT64@
|
#define SCM_I_GSC_HAVE_STRUCT_DIRENT64 @SCM_I_GSC_HAVE_STRUCT_DIRENT64@
|
||||||
|
#define SCM_I_GSC_ICONVEH_ERROR @SCM_I_GSC_ICONVEH_ERROR@
|
||||||
|
#define SCM_I_GSC_ICONVEH_QUESTION_MARK @SCM_I_GSC_ICONVEH_QUESTION_MARK@
|
||||||
|
#define SCM_I_GSC_ICONVEH_ESCAPE_SEQUENCE @SCM_I_GSC_ICONVEH_ESCAPE_SEQUENCE@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Local Variables:
|
Local Variables:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue