diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2014-07-22 07:28:09 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2014-07-22 07:28:09 -0700 |
commit | bf36536c9fa398161b24668ad1c29f12f86556e8 (patch) | |
tree | 04b6d6632d97c12728ee052c99d8a2a8eb34a14c | |
parent | f2d83d19a09f68864209cc1568a59be70a7bfdbc (diff) | |
download | txr-bf36536c9fa398161b24668ad1c29f12f86556e8.tar.gz txr-bf36536c9fa398161b24668ad1c29f12f86556e8.tar.bz2 txr-bf36536c9fa398161b24668ad1c29f12f86556e8.zip |
* configure: Add a check, in the case that we cannot make an
executable, whether this is due to being required to use C99.
For instance, the Solaris environment requires compilation
using the C99 dialect if _XOPEN_SOURCE is set to 600 or higher.
* debug.c: When compiling as C99, we have to obey the special
C99 conventions for instantiating inline functions.
* hash.c: Likewise.
* lib.c: Likewise.
* parser.y: Likewise.
* unwind.c: Likewise.
-rw-r--r-- | ChangeLog | 18 | ||||
-rwxr-xr-x | configure | 20 | ||||
-rw-r--r-- | debug.c | 7 | ||||
-rw-r--r-- | hash.c | 5 | ||||
-rw-r--r-- | lib.c | 22 | ||||
-rw-r--r-- | parser.y | 5 | ||||
-rw-r--r-- | unwind.c | 5 |
7 files changed, 76 insertions, 6 deletions
@@ -1,3 +1,21 @@ +2014-07-22 Kaz Kylheku <kaz@kylheku.com> + + * configure: Add a check, in the case that we cannot make an + executable, whether this is due to being required to use C99. + For instance, the Solaris environment requires compilation + using the C99 dialect if _XOPEN_SOURCE is set to 600 or higher. + + * debug.c: When compiling as C99, we have to obey the special + C99 conventions for instantiating inline functions. + + * hash.c: Likewise. + + * lib.c: Likewise. + + * parser.y: Likewise. + + * unwind.c: Likewise. + 2014-07-21 Kaz Kylheku <kaz@kylheku.com> * RELNOTES: Updated. @@ -704,14 +704,22 @@ int main(void) ! if ! conftest ; then - printf "failed\n\n" - printf "Errors from compilation: \n\n" - cat conftest.err - exit 1 + printf "failed\n" + printf "Checking whether the failure is due to a requirement to use C99 ... " + if conftest EXTRA_FLAGS=-std=c99 ; then + printf "yes\n" + lang_flags="$(echo "$lang_flags" | sed -e 's/-ansi/-std=c99/')" + else + printf "no\n\n" + conftest && true + printf "Errors from compilation: \n\n" + cat conftest.err + exit 1 + fi +else + printf "okay\n" fi -printf "okay\n" - printf "Checking whether executables have that idiotic .exe suffix ... " if ls conftest.exe > /dev/null 2>&1 ; then @@ -52,6 +52,13 @@ static val breakpoints; static val last_command; static int cols = 80; +/* C99 inline instantiations. */ +#if __STDC_VERSION__ >= 199901L +val debug_check(val form, val bindings, val data, val line, + val pos, val base); +void debug_init(void); +#endif + static void help(val stream) { put_string(lit("commands:\n" @@ -73,6 +73,11 @@ val weak_keys_k, weak_vals_k, equal_based_k; */ static struct hash *reachable_weak_hashes; +/* C99 inline instantiations. */ +#if __STDC_VERSION__ >= 199901L +loc gethash_l(val hash, val key, loc new_p); +#endif + /* * This is is an adaptation of hashpjw, from Compilers: Principles, Techniques * and Tools, Aho, Sethi, Ulman, 1988. P. 436. The register is wider by @@ -105,6 +105,28 @@ static val env_list; mem_t *(*oom_realloc)(mem_t *, size_t); +/* C99 inline instantiations. */ +#if __STDC_VERSION__ >= 199901L +loc mkloc_fun(val *ptr, val obj); +cnum tag(val obj); +int is_ptr(val obj); +int is_num(val obj); +int is_chr(val obj); +int is_lit(val obj); +type_t type(val obj); +val auto_str(const wchli_t *str); +val static_str(const wchli_t *str); +wchar_t *litptr(val obj); +val num_fast(cnum n); +mp_int *mp(val bign); +val chr(wchar_t ch); +val eq(val a, val b); +val null(val v); +int null_or_missing_p(val v); +val default_arg(val arg, val dfl); +val default_bool_arg(val arg); +#endif + val identity(val obj) { return obj; @@ -1013,6 +1013,11 @@ not_a_clause : ALL { $$ = make_expr(all_s, nil, num(lineno)); } %% +/* C99 inline instantiations. */ +#if __STDC_VERSION__ >= 199901L +val rlcp(val to, val from); +#endif + static val sym_helper(wchar_t *lexeme, val meta_allowed) { int leading_at = *lexeme == L'@'; @@ -47,6 +47,11 @@ static uw_frame_t *uw_env_stack; static uw_frame_t *uw_exit_point; static uw_frame_t toplevel_env; +/* C99 inline instantiations. */ +#if __STDC_VERSION__ >= 199901L +val uw_block_return(val tag, val result); +#endif + static void uw_unwind_to_exit_point(void) { assert (uw_exit_point); |