The usual changes when a release is nearing...

This commit is contained in:
Guido van Rossum 1995-01-02 18:33:54 +00:00
parent a6c707c679
commit 76be6eda96
9 changed files with 2325 additions and 1617 deletions

113
BUGS
View File

@ -5,6 +5,99 @@ nother to make an entry in this file, unless it was a serious bug
==> Status indicators: (-) not fixed; (*) fixed; (?) don't know what to do. ==> Status indicators: (-) not fixed; (*) fixed; (?) don't know what to do.
======================================================================
Known BUGS in 1.1.1 and 1.2
---------------------------
(-) arraymodule doesn't compile under Ultrix (FPROTO macro)
(-) Linux uses GNU getopt by default which is broken
(-) makesetup assumes CCC is the C++ compiler -- not portable
(-) "make depend" assumes mkdep exists -- not portable
(-) threadmodule.c leaks LOTS of memory at thread exit
(-) tkinter seems to leave an exception around sometime which breaks
unmarshalling code objects
(-) memory leak (namebuf) in initmodule2
(-) regen calls h2py which isn't defined by default
(-) shared install in Modules still doesn't work for empty list
(-) make libinstall (or similar) references to machdep directory but
doesn't create it
(-) destroying all modules may destroy __builtin__ while destructors
of other modules may still need it
(-) hash() of float values returns suspect values
(-) sockets aren't thread safe (address of static struct returned,
some calls aren't thread safe)
(-) Everything else that uses err_get() should probably use err_get_tb()
(-) struct module aligns doubles wrongly when compiled with -DDEBUG on sparc
(-) pow(int, int, long) (etc.) dumps core on Linux (and other Intel machines?)
(-) C-level coerce() doesn't call __coerce__ when it should (and
similar for __cmp__)
(-) DECREF can cause the interpreter to be called recursively (for
__del__ disciplines) -- so list and dict implementation calls doing
DECREF can cause recursive calls to methods of the object being
modified. Other files too. (Only partially fixed.)
(-) HP doesn't compile out of the box (needs LIBS=-ldld or
LIBS=/usr/lib/libdld.sl)
(-) something fishy with softspace and print_error (flushline clears
the error)
(-) tkinter doesn't seem to see any declaration of malloc on sunos 4.1.3
======================================================================
BUGS present in 1.1.1 and fixed in 1.2
--------------------------------------
(*) threadmodule.c leaks 'res' in t_bootstrap
(*) errors.c shouldn't declare strerror() on NT
(*) DECREF can cause the interpreter to be called recursively (for
__del__ disciplines) -- so list and dict implementation calls doing
DECREF can cause recursive calls to methods of the object being
modified. Other files too. (Only partially fixed.)
(*) tkinter dereferences NULL if timer callback raises an exception
(*) must link with -lieee for linux
(*) if a timer handler routine raises an exception, the interpreter
dereferences NULL
(*) __getattr__ doesn't clear error
(*) '%s' % a, where a is a class instance, fails
(*) "make test" won't find freshly built dynamically loaded modules --
should add ./Modules to TESTPATH
(*) lshift calls __rshift__ instead of __rlshift__
(*) memory leak in creation of sys.builtin_module_names
(*) Bugs in instance_dealloc(): (a) memory leak for exception
type+value; (2) should save+restore traceback as well
(*) modsupport.c(vmkvalue): on systems where va_list is an array, the
calls to do_mkvalue and do_mktuple don't want an "&" before va.
====================================================================== ======================================================================
BUGS found in 1.1 and fixed in 1.1.1 BUGS found in 1.1 and fixed in 1.1.1
------------------------------------ ------------------------------------
@ -39,21 +132,12 @@ max is >0
(*) sorting class instances broken if no __cmp__ defined (*) sorting class instances broken if no __cmp__ defined
BUGS found in 1.1 and not yet fixed
-----------------------------------
(-) HP doesn't compile out of the box (needs LIBS=-ldld or
LIBS=/usr/lib/libdld.sl)
(-) something fishy with softspace and print_error (flushline clears
the error)
(-) tkinter doesn't seem to see any declaration of malloc on sunos 4.1.3
====================================================================== ======================================================================
BUGS found in 1.0.3 and fixed in 1.1 BUGS found in 1.0.3 and fixed in 1.1
------------------------------------ ------------------------------------
(*) 2 specific leaks: 1 PYTHONPATH; 2 reading code from .pyc
(*) If class C doesn't define __cmp__, cmp(a,b) will return -2 and (*) If class C doesn't define __cmp__, cmp(a,b) will return -2 and
[a,b].sort() will fail [a,b].sort() will fail
@ -66,9 +150,6 @@ involved.
(*) freeze script needs major rewrite to cope with multiple extensions (*) freeze script needs major rewrite to cope with multiple extensions
(Jack seems to have fixed it now -- where is it?) (Jack seems to have fixed it now -- where is it?)
(*) various memory leaks (see purify report from anthony.baxter@aaii.oz.au)
(several leaks fixed anyway :-)
(*) unwanted entries in stack trace if err_clear() clears an error (*) unwanted entries in stack trace if err_clear() clears an error
that also set a stack trace that also set a stack trace
@ -158,10 +239,6 @@ end in linefeed
Bugs found in 1.0.1 and not yet fixed Bugs found in 1.0.1 and not yet fixed
------------------------------------- -------------------------------------
(?) modsupport.c(vmkvalue): on systems where va_list is an array, the
calls to do_mkvalue and do_mktuple don't want an "&" before va.
(don't know what to do about this)
(?) threads are slow on Solaris 2 (?) threads are slow on Solaris 2
(so what?) (so what?)

199
ChangeLog
View File

@ -1,3 +1,202 @@
Fri Dec 30 16:19:17 1994 Guido van Rossum <guido@voorn.cwi.nl>
* Parser/tokenizer.c (tok_nextc): zap tok->buf after freeing
* Include/traceback.h: added struct _frame declaration for ANSI C
* Include/bitset.h: move definition of testbit() around
Thu Dec 29 10:09:25 1994 Guido van Rossum <guido@voorn.cwi.nl>
* Objects/mappingobject.c (mapping_has_key): don't call
lookmapping() for empty dictionary
* Modules/Makefile.pre.in: use new style @prefix@ substitution
(sharedinstall): fix case of loop over empty $(SHAREDMODS)
* Several files: removed redundant variables etc. (Sam Leffler)
Wed Dec 28 12:09:10 1994 Guido van Rossum <guido@voorn.cwi.nl>
* Modules/threadmodule.c (t_bootstrap): XDECREF the return value;
(thread_exit_thread): DECREF the frame returned by save_thread()
* Modules/md5module.c, Doc/libmd5.tex: renamed md5.md5() to md5.new()
Wed Dec 21 13:30:47 1994 Guido van Rossum <guido@voorn.cwi.nl>
* Python/ceval.c (build_class): add hook for Donald Beaudry
Mon Dec 19 17:35:13 1994 Guido van Rossum <guido@voorn.cwi.nl>
* Doc/libposixfile.tex: the fileopen function was erroneously
documented as openfile
Tue Dec 13 11:46:03 1994 Guido Van Rossum <guido@tesla>
* config.h.in, configure: rewritten *by* autoconf 2.0
* configure.in: parts rewritten for autoconf 2.0; strip spaces
from uname output for QNX; test for some new things like
ftruncate, truncate and va_list as array
* acconfig.h: some reordering to get things in alphabetical order;
added GETTIMEOFDAY_NO_TZ and VA_LIST_IS_ARRAY
* README: Added SCO notes
* Python/thread_solaris.h (start_new_thread): create new threads
with THR_DETACHED option instead of THR_NEW_LWP -- else there's a
limit to the number of threads you can create in total, ever, per
process
* Python/traceback.c (tb_print): don't store in sys.last_traceback
(that's done in pythonrun.c:print_error() now)
* Python/pythonrun.c (print_error): use fatal() instead of
abort(); use err_fetch() instead of err_get(); call tb_print()
instead of going through ceval.c:printtraceback()
* Python/modsupport.c: fix vmkvalue() for systems where va_list is
an array; add support for creating lists and dcitionaries; added
convenience functions for calling functions/methods with format
and argument list
* Python/marshal.c (rd[s]_object): add trap for calls while an
exception condition is still set
* Python/{import.c,importdl.c}: completely restructured: moved
all dynamic loading stuff to importdl.c; added public interface
to the functionality through module 'imp' (for __import__ hack)
* Modules/threadmodule.c (t_bootstrap): fix leak of result value
(still a massive leak left I think)
* Python/errors.c: don't declare strerror on NT
* Python/getargs.c (vgetargs[1]): fix for systems where va_list
is an array
* Python/compile.c: use fatal() instead of abort(); use
err_{fetch,restore}
* Python/ceval.c: move some (X)DECREF's around for improved
re-entrancy; call built-in __import__ to implement IMPORT_NAME;
use err_{fetch,restore}; fix call to __rshift__ in __lshift__;
check for string left arg before anything else in rem()
* Python/ceval.c, Include/ceval.h: get rid of printtraceback
* Python/bltinmodule.c: added __import__ built-in function;
restructured argument parsing of most built-ins to use
newgetargs()
* Python/Makefile.in: add importdl.o to OBJS; special-case
compilation of importdl.c instead of import.c
* Parser/{pgen.c,parser.c,grammar.c}: use fatal() instead of abort()
* Objects/object.c: use fatal() instead of abort()
* Objects/mappingobject.c: fix re-entrancy bugs (allow ma_table
and ma_size to be 0)
* Objects/listobject.c: fix some re-entrancy bugs (not complete)
* Objects/frameobject.c: use err_{fetch,restore} everywhere; use
fatal() instead of abort()
* Objects/fileobject.c (file_truncate): new method (only of
ftruncate() is in libc)
* Objects/classobject.c (instance_getattr): add err_clear() when
retrying after failing instance_getattr1() call; use
err_{fetch,restore} everywhere
* Modules/tkintermodule.c: use PyErr_{Fetch,Restore} instead of
{GetAndClear,SetObject}; fix NULL dereference in TimerHandler
* configure.in, Modules/timemodule.c: on some systems,
gettimeofday() has no second argument
* Modules/socketmodule.c: if O_NDELAY undefined, use O_NONBLOCK
(for QNX); use gethostbyname_r if it exists (since it is
re-entrant); use h_error and hstrerror when they exist; other
changes for re-entrancy; make printable representation more
useful; cosmetic changes in argument lists
* Modules/signalmodule.c: if NSIG undefined, use _SIGMAX + 1
* Modules/posixmodule.c: changes for direct/dirent dictated by
autoconf 2.0
* Modules/config.c.in: added standard built-in module "imp"
* Modules/{Makefile.pre.in,makesetup}: change @...@ to _..._
* Makefile.in: adapted to autoconf 2.0; treat prefix in a standard
way, remove config caches in distclean target
* Lib/tkinter/Tkinter.py (Pack.propagate): fix calling convention
* Lib/test/test_b2.py: test reload() of built-in module (marshal)
* Lib/test/{test_b1.py,testall.out}: added test for __import__
* Include/rename1.h: change HEAD_INIT to macro with argument
* Include/import.h: added decl for get_pyc_magic()
* Include/{rename1.h,errors.h}, Python/errors.c: added err_fetch()
and err_restore(), get rid of err_get()
* Include/bltinmodule.h, Python/bltinmodule.c (getbuiltins): new
like getbuiltin() buit takes char * instead of stringobject *
argument (for __import__ hack)
* Doc/tut.tex: use spam, bacon and eggs instead of foo, bar, bletch
* Doc/libtypes.tex (File Objects): add footnote
explaining why readline() leaves the trailing newline in
Sat Nov 19 15:14:02 1994 Guido Van Rossum <guido@tesla>
* Objects/mappingobject.c: ma_table may now be NULL (when ma_size
== ); changes to avoid re-entering the interpreter via DECREF
while the mapping object is being modified
* Several other places: similar
* errors.[ch]: new functions err_fetch and err_restore
fetch and restore all three exception related values (plus places
using these)
* Makefile.in (TESTPATH): Added ./Modules to test path so
dynamically loaded modules are found even if not yet installed
Wed Nov 16 14:19:01 1994 Guido Van Rossum <guido@tesla>
* Python/sysmodule.c (list_builtin_module_names): stop a leak
Mon Nov 14 13:21:45 1994 Guido van Rossum <guido@tesla>
* Doc/ref[467].tex: don't use \verb{...} in footnotes; rewritten
using {\tt ...}
* Lib/urlparse.py (urljoin): safe version of Andy Bensky's fix to
urllib.py
* Lib/urllib.py (basejoin): (Andy Bensky) fix case where url has a
type and a path but no host -- the host from the base should be
inserted
* Parser/grammar.c: (Don Beaudry) initialize accelerators print
"Translating labels" header only if debugging
* Doc/ref[36].tex: some typos
* Doc/ref[35].tex: clarify reverse/backward quotes, add them to
the index
=================================== ===================================
==> Release 1.1.1 (10 Nov 1994) <== ==> Release 1.1.1 (10 Nov 1994) <==

View File

@ -33,18 +33,11 @@ RANLIB= @RANLIB@
# Machine-dependent subdirectories # Machine-dependent subdirectories
MACHDEP= @MACHDEP@ MACHDEP= @MACHDEP@
# Install prefixes are treated specially by the configure script:
# it only changes these lines if it has received a --prefix=... or
# --exec-prefix=... command line option. Note that $(prefix) is
# also used when compiling config.c in Modules to set the default
# module search path, so if you change it later be sure to change it
# there too and rebuild.
# Install prefix for architecture-independent files # Install prefix for architecture-independent files
prefix= /usr/local prefix= @prefix@
# Install prefix for architecture-dependent files # Install prefix for architecture-dependent files
exec_prefix= $(prefix) exec_prefix= @exec_prefix@
# Expanded directories # Expanded directories
MANDIR=$(prefix)/man MANDIR=$(prefix)/man
@ -93,7 +86,7 @@ python: Makefiles
done done
# Test the interpreter (twice, once without .pyc files, once with) # Test the interpreter (twice, once without .pyc files, once with)
TESTPATH= $(srcdir)/Lib:$(srcdir)/Lib/test TESTPATH= $(srcdir)/Lib:$(srcdir)/Lib/test:./Modules
test: python test: python
-rm -f $(srcdir)/Lib/test/*.pyc -rm -f $(srcdir)/Lib/test/*.pyc
PYTHONPATH=$(TESTPATH) ./python -c 'import autotest' PYTHONPATH=$(TESTPATH) ./python -c 'import autotest'
@ -242,7 +235,7 @@ clobber: localclobber
# Make things extra clean, before making a distribution # Make things extra clean, before making a distribution
distclean: clobber distclean: clobber
-$(MAKE) SUBDIRS="$(SUBDIRSTOO)" clobber -$(MAKE) SUBDIRS="$(SUBDIRSTOO)" clobber
-rm -f config.status config.h Makefile -rm -f config.status config.log config.cache config.h Makefile
-for i in $(SUBDIRS) $(SUBDIRSTOO); do \ -for i in $(SUBDIRS) $(SUBDIRSTOO); do \
for f in $$i/*.in; do \ for f in $$i/*.in; do \
f=`basename "$$f" .in`; \ f=`basename "$$f" .in`; \

28
README
View File

@ -1,13 +1,9 @@
Python release 1.1.1 Python release 1.2
==================== ==================
==> This is Python version 1.1.1. ==> This version provides new functionality as well as bug fixes.
Everyone should upgrade. For a description of what's changed, see
==> Python 1.1.1 is a pure bugfix release. It fixes two core dumps Misc/NEWS.
related to the changed implementation of (new)getargs, some
portability bugs, and some very minor things here and there. If
you have 1.1, you only need to install 1.1 if bugs in it are
bugging you.
==> If you don't know yet what Python is: it's an interpreted, ==> If you don't know yet what Python is: it's an interpreted,
extensible, embeddable, interactive, object-oriented programming extensible, embeddable, interactive, object-oriented programming
@ -130,6 +126,20 @@ IRIX 5) you need to call the configure script with the option
found. (On some other systems, e.g. IRIX 5, these libraries exist but found. (On some other systems, e.g. IRIX 5, these libraries exist but
are incompatible with other system libraries such as X11 and GL.) are incompatible with other system libraries such as X11 and GL.)
- On SCO, a number of notes apply:
1) Everything works much better if you add -U__STDC__ to the
defs. This is because all the SCO header files are broken.
Anything that isn't mentioned in the C standard it's
conditionally excluded when __STDC__ is defined.
2) Due to the U.S. export restrictions, SCO broke the crypt
stuff out into a separate library, libcrypt_i.a so the LIBS
needed be set to:
LIBS=' -lsocket -lcrypt_i'
- If you want to install the binaries and the Python library somewhere - If you want to install the binaries and the Python library somewhere
else than in /usr/local/{bin,lib}, you can pass the option else than in /usr/local/{bin,lib}, you can pass the option
--prefix=DIRECTORY; the interpreter binary will be installed as --prefix=DIRECTORY; the interpreter binary will be installed as

68
TODO
View File

@ -1,4 +1,70 @@
(*) 2 specific leaks: 1 PYTHONPATH; 2 reading code from .pyc (-) reentrancy with global variables vs. decref in
./Modules/cdmodule.c ./Modules/flmodule.c ./Objects/accessobject.c
./Objects/frameobject.c ./Python/traceback.c
(-) speed up regsub.gsub
(-) change md5.md5() to md5.new()
(-) try posixenviron.c and merge back into posixmodule.c?
(-) document chown()
(-) add and document chroot() ?
(-) use add gethostname_r and release thread lock when it exists
(-) Add `@CFLAGS@', `@CPPFLAGS@', and `@LDFLAGS@' to `Makefile.in'
(-) modules should be able to define a module destructor hook
(-) goaway() / cleanup() call AtExit funcs *after* donimport()
(-) destroy modules in reverse order of importation
(-) make array a standard built-in object
(-) makesetup should accept .o files without corresponding .c file
(-) use autoconf 2.0
(-) configure(.in ?) contains a line beginning with '+'
======================================================================
Release 1.1.1 (10 Nov 1994)
======================================================================
(-) try Boehm/Dehmers/Weiser conservative garbage collector
(-) implement new 'flatten' module
(-) document new Python/C API
(*) __import__, module imp
(-) add various things to module dictionary, e.g. pathname, dictionary
where found, __version__ string?
(-) pass dict of builtins to exec / execfile / eval ???
(-) stack frame correspondence problem (Jim Roskind)
(probably solved by err_setval_tb)
(-) make lots of places use newgetargs
(-) no tp_str member in typeobject
(-) readline 2.0 on sequent has ^C problem (works only first time)
(*) add explanatory comments to Setup (especially about SGI modules
like 'cd')
(-) need to add truncate() and ftruncate() to posixmodule.c (Windows:
chsize(fd, size)
======================================================================
Release 1.1 (11 Oct 1994)
======================================================================
(-) if __getattr__ prints something, calling repr(x) from cmd line (-) if __getattr__ prints something, calling repr(x) from cmd line
forgets a newline forgets a newline

View File

@ -15,8 +15,9 @@
/* Define if getpgrp() must be called as getpgrp(0). */ /* Define if getpgrp() must be called as getpgrp(0). */
#undef GETPGRP_HAVE_ARG #undef GETPGRP_HAVE_ARG
/* Define if setpgrp() must be called as setpgrp(0, 0). */ /* Define if gettimeofday() does not have second (timezone) argument
#undef SETPGRP_HAVE_ARG This is the case on Motorola V4 (R40V4.2) */
#undef GETTIMEOFDAY_NO_TZ
/* Define this if your time.h defines altzone */ /* Define this if your time.h defines altzone */
#undef HAVE_ALTZONE #undef HAVE_ALTZONE
@ -31,6 +32,9 @@
/* Define if you have POSIX threads */ /* Define if you have POSIX threads */
#undef _POSIX_THREADS #undef _POSIX_THREADS
/* Define if setpgrp() must be called as setpgrp(0, 0). */
#undef SETPGRP_HAVE_ARG
/* Define to empty if the keyword does not work. */ /* Define to empty if the keyword does not work. */
#undef signed #undef signed
@ -41,6 +45,12 @@
(which you can't on SCO ODT 3.0). */ (which you can't on SCO ODT 3.0). */
#undef SYS_SELECT_WITH_SYS_TIME #undef SYS_SELECT_WITH_SYS_TIME
/* Define if a va_list is an array of some kind */
#undef VA_LIST_IS_ARRAY
/* Define to empty if the keyword does not work. */
#undef volatile
/* Define if you want to use SGI (IRIX 4) dynamic linking. /* Define if you want to use SGI (IRIX 4) dynamic linking.
This requires the "dl" library by Jack Jansen, This requires the "dl" library by Jack Jansen,
ftp://ftp.cwi.nl/pub/dynload/dl-1.6.tar.Z. ftp://ftp.cwi.nl/pub/dynload/dl-1.6.tar.Z.
@ -65,8 +75,5 @@
/* Define if you want to use the GNU readline library */ /* Define if you want to use the GNU readline library */
#undef WITH_READLINE #undef WITH_READLINE
/* Define to empty if the keyword does not work. */
#undef volatile
/* Leave that blank line there-- autoheader needs it! */ /* Leave that blank line there-- autoheader needs it! */

View File

@ -13,13 +13,6 @@
/* Define to empty if the keyword does not work. */ /* Define to empty if the keyword does not work. */
#undef const #undef const
/* Define if you have dirent.h. */
#undef DIRENT
/* Define to the type of elements in the array set by `getgroups'.
Usually this is either `int' or `gid_t'. */
#undef GETGROUPS_T
/* Define to `int' if <sys/types.h> doesn't define. */ /* Define to `int' if <sys/types.h> doesn't define. */
#undef gid_t #undef gid_t
@ -36,9 +29,6 @@
/* Define to `int' if <sys/types.h> doesn't define. */ /* Define to `int' if <sys/types.h> doesn't define. */
#undef mode_t #undef mode_t
/* Define if you don't have dirent.h, but have ndir.h. */
#undef NDIR
/* Define to `long' if <sys/types.h> doesn't define. */ /* Define to `long' if <sys/types.h> doesn't define. */
#undef off_t #undef off_t
@ -61,12 +51,6 @@
/* Define if you have the ANSI C header files. */ /* Define if you have the ANSI C header files. */
#undef STDC_HEADERS #undef STDC_HEADERS
/* Define if you don't have dirent.h, but have sys/dir.h. */
#undef SYSDIR
/* Define if you don't have dirent.h, but have sys/ndir.h. */
#undef SYSNDIR
/* Define if you can safely include both <sys/time.h> and <time.h>. */ /* Define if you can safely include both <sys/time.h> and <time.h>. */
#undef TIME_WITH_SYS_TIME #undef TIME_WITH_SYS_TIME
@ -76,9 +60,6 @@
/* Define to `int' if <sys/types.h> doesn't define. */ /* Define to `int' if <sys/types.h> doesn't define. */
#undef uid_t #undef uid_t
/* Define if the closedir function returns void instead of int. */
#undef VOID_CLOSEDIR
/* Define if your <unistd.h> contains bad prototypes for exec*() /* Define if your <unistd.h> contains bad prototypes for exec*()
(as it does on SGI IRIX 4.x) */ (as it does on SGI IRIX 4.x) */
#undef BAD_EXEC_PROTOTYPES #undef BAD_EXEC_PROTOTYPES
@ -93,8 +74,9 @@
/* Define if getpgrp() must be called as getpgrp(0). */ /* Define if getpgrp() must be called as getpgrp(0). */
#undef GETPGRP_HAVE_ARG #undef GETPGRP_HAVE_ARG
/* Define if setpgrp() must be called as setpgrp(0, 0). */ /* Define if gettimeofday() does not have second (timezone) argument
#undef SETPGRP_HAVE_ARG This is the case on Motorola V4 (R40V4.2) */
#undef GETTIMEOFDAY_NO_TZ
/* Define this if your time.h defines altzone */ /* Define this if your time.h defines altzone */
#undef HAVE_ALTZONE #undef HAVE_ALTZONE
@ -109,6 +91,9 @@
/* Define if you have POSIX threads */ /* Define if you have POSIX threads */
#undef _POSIX_THREADS #undef _POSIX_THREADS
/* Define if setpgrp() must be called as setpgrp(0, 0). */
#undef SETPGRP_HAVE_ARG
/* Define to empty if the keyword does not work. */ /* Define to empty if the keyword does not work. */
#undef signed #undef signed
@ -116,6 +101,12 @@
(which you can't on SCO ODT 3.0). */ (which you can't on SCO ODT 3.0). */
#undef SYS_SELECT_WITH_SYS_TIME #undef SYS_SELECT_WITH_SYS_TIME
/* Define if a va_list is an array of some kind */
#undef VA_LIST_IS_ARRAY
/* Define to empty if the keyword does not work. */
#undef volatile
/* Define if you want to use SGI (IRIX 4) dynamic linking. /* Define if you want to use SGI (IRIX 4) dynamic linking.
This requires the "dl" library by Jack Jansen, This requires the "dl" library by Jack Jansen,
ftp://ftp.cwi.nl/pub/dynload/dl-1.6.tar.Z. ftp://ftp.cwi.nl/pub/dynload/dl-1.6.tar.Z.
@ -140,90 +131,99 @@
/* Define if you want to use the GNU readline library */ /* Define if you want to use the GNU readline library */
#undef WITH_READLINE #undef WITH_READLINE
/* Define to empty if the keyword does not work. */ /* Define if you have the chown function. */
#undef volatile
/* Define if you have chown. */
#undef HAVE_CHOWN #undef HAVE_CHOWN
/* Define if you have clock. */ /* Define if you have the clock function. */
#undef HAVE_CLOCK #undef HAVE_CLOCK
/* Define if you have dlopen. */ /* Define if you have the dlopen function. */
#undef HAVE_DLOPEN #undef HAVE_DLOPEN
/* Define if you have ftime. */ /* Define if you have the ftime function. */
#undef HAVE_FTIME #undef HAVE_FTIME
/* Define if you have getpeername. */ /* Define if you have the ftruncate function. */
#undef HAVE_FTRUNCATE
/* Define if you have the gethostname_r function. */
#undef HAVE_GETHOSTNAME_R
/* Define if you have the getpeername function. */
#undef HAVE_GETPEERNAME #undef HAVE_GETPEERNAME
/* Define if you have getpgrp. */ /* Define if you have the getpgrp function. */
#undef HAVE_GETPGRP #undef HAVE_GETPGRP
/* Define if you have getpid. */ /* Define if you have the getpid function. */
#undef HAVE_GETPID #undef HAVE_GETPID
/* Define if you have gettimeofday. */ /* Define if you have the gettimeofday function. */
#undef HAVE_GETTIMEOFDAY #undef HAVE_GETTIMEOFDAY
/* Define if you have getwd. */ /* Define if you have the getwd function. */
#undef HAVE_GETWD #undef HAVE_GETWD
/* Define if you have link. */ /* Define if you have the link function. */
#undef HAVE_LINK #undef HAVE_LINK
/* Define if you have lstat. */ /* Define if you have the lstat function. */
#undef HAVE_LSTAT #undef HAVE_LSTAT
/* Define if you have nice. */ /* Define if you have the nice function. */
#undef HAVE_NICE #undef HAVE_NICE
/* Define if you have readlink. */ /* Define if you have the readlink function. */
#undef HAVE_READLINK #undef HAVE_READLINK
/* Define if you have select. */ /* Define if you have the select function. */
#undef HAVE_SELECT #undef HAVE_SELECT
/* Define if you have setgid. */ /* Define if you have the setgid function. */
#undef HAVE_SETGID #undef HAVE_SETGID
/* Define if you have setpgid. */ /* Define if you have the setpgid function. */
#undef HAVE_SETPGID #undef HAVE_SETPGID
/* Define if you have setpgrp. */ /* Define if you have the setpgrp function. */
#undef HAVE_SETPGRP #undef HAVE_SETPGRP
/* Define if you have setsid. */ /* Define if you have the setsid function. */
#undef HAVE_SETSID #undef HAVE_SETSID
/* Define if you have setuid. */ /* Define if you have the setuid function. */
#undef HAVE_SETUID #undef HAVE_SETUID
/* Define if you have setvbuf. */ /* Define if you have the setvbuf function. */
#undef HAVE_SETVBUF #undef HAVE_SETVBUF
/* Define if you have siginterrupt. */ /* Define if you have the siginterrupt function. */
#undef HAVE_SIGINTERRUPT #undef HAVE_SIGINTERRUPT
/* Define if you have symlink. */ /* Define if you have the symlink function. */
#undef HAVE_SYMLINK #undef HAVE_SYMLINK
/* Define if you have tcgetpgrp. */ /* Define if you have the tcgetpgrp function. */
#undef HAVE_TCGETPGRP #undef HAVE_TCGETPGRP
/* Define if you have tcsetpgrp. */ /* Define if you have the tcsetpgrp function. */
#undef HAVE_TCSETPGRP #undef HAVE_TCSETPGRP
/* Define if you have times. */ /* Define if you have the times function. */
#undef HAVE_TIMES #undef HAVE_TIMES
/* Define if you have uname. */ /* Define if you have the truncate function. */
#undef HAVE_TRUNCATE
/* Define if you have the uname function. */
#undef HAVE_UNAME #undef HAVE_UNAME
/* Define if you have waitpid. */ /* Define if you have the waitpid function. */
#undef HAVE_WAITPID #undef HAVE_WAITPID
/* Define if you have the <dirent.h> header file. */
#undef HAVE_DIRENT_H
/* Define if you have the <dlfcn.h> header file. */ /* Define if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H #undef HAVE_DLFCN_H
@ -233,6 +233,9 @@
/* Define if you have the <limits.h> header file. */ /* Define if you have the <limits.h> header file. */
#undef HAVE_LIMITS_H #undef HAVE_LIMITS_H
/* Define if you have the <ndir.h> header file. */
#undef HAVE_NDIR_H
/* Define if you have the <signal.h> header file. */ /* Define if you have the <signal.h> header file. */
#undef HAVE_SIGNAL_H #undef HAVE_SIGNAL_H
@ -248,6 +251,12 @@
/* Define if you have the <sys/audioio.h> header file. */ /* Define if you have the <sys/audioio.h> header file. */
#undef HAVE_SYS_AUDIOIO_H #undef HAVE_SYS_AUDIOIO_H
/* Define if you have the <sys/dir.h> header file. */
#undef HAVE_SYS_DIR_H
/* Define if you have the <sys/ndir.h> header file. */
#undef HAVE_SYS_NDIR_H
/* Define if you have the <sys/param.h> header file. */ /* Define if you have the <sys/param.h> header file. */
#undef HAVE_SYS_PARAM_H #undef HAVE_SYS_PARAM_H
@ -278,32 +287,11 @@
/* Define if you have the dl library (-ldl). */ /* Define if you have the dl library (-ldl). */
#undef HAVE_LIBDL #undef HAVE_LIBDL
/* Define if you have the inet library (-linet). */ /* Define if you have the dld library (-ldld). */
#undef HAVE_LIBINET #undef HAVE_LIBDLD
/* Define if you have the mpc library (-lmpc). */ /* Define if you have the ieee library (-lieee). */
#undef HAVE_LIBMPC #undef HAVE_LIBIEEE
/* Define if you have the nsl library (-lnsl). */
#undef HAVE_LIBNSL
/* Define if you have the pthreads library (-lpthreads). */
#undef HAVE_LIBPTHREADS
/* Define if you have the seq library (-lseq). */
#undef HAVE_LIBSEQ
/* Define if you have the socket library (-lsocket). */
#undef HAVE_LIBSOCKET
/* Define if you have the sun library (-lsun). */ /* Define if you have the sun library (-lsun). */
#undef HAVE_LIBSUN #undef HAVE_LIBSUN
/* Define if you have the termcap library (-ltermcap). */
#undef HAVE_LIBTERMCAP
/* Define if you have the termlib library (-ltermlib). */
#undef HAVE_LIBTERMLIB
/* Define if you have the thread library (-lthread). */
#undef HAVE_LIBTHREAD

3174
configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -1,16 +1,12 @@
dnl Process this file with autoconf 1.8 or later to make a configure script. dnl Process this file with autoconf 2.0 or later to make a configure script.
AC_REVISION($Revision$)dnl AC_REVISION($Revision$)
AC_PREREQ(1.8)dnl AC_PREREQ(2.0)
AC_INIT(Include/object.h) AC_INIT(Include/object.h)
AC_CONFIG_HEADER(config.h)dnl AC_CONFIG_HEADER(config.h)
# Don't suppress compiler output when --verbose is specified
test -n "$verbose" &&
ac_compile=`echo "$ac_compile" | sed "s|>/dev/null 2>&1||"`
AC_VERBOSE(setting ac_compile to '$ac_compile')
# checks for alternative programs # checks for alternative programs
AC_CHECKING(for --with(out)-gcc) AC_CHECKING(for --with(out)-gcc)
AC_WITH(gcc, [ AC_ARG_WITH(gcc, [--without-gcc never use gcc], [
case $withval in case $withval in
no) withval=cc;; no) withval=cc;;
yes) withval=gcc;; yes) withval=gcc;;
@ -19,7 +15,7 @@ AC_WITH(gcc, [
AC_PROG_CC AC_PROG_CC
AC_PROG_RANLIB AC_PROG_RANLIB
AC_SUBST(AR) AC_SUBST(AR)
AC_PROGRAMS_CHECK(AR, ar aal, ar) AC_CHECK_PROGS(AR, ar aal, ar)
AC_SUBST(INSTALL) AC_SUBST(INSTALL)
# Install just never works :-( # Install just never works :-(
if test -z "$INSTALL" if test -z "$INSTALL"
@ -35,42 +31,41 @@ fi
AC_AIX AC_AIX
AC_ISC_POSIX AC_ISC_POSIX
AC_MINIX AC_MINIX
dnl DYNIX test runs compile so must be last
AC_DYNIX_SEQ
AC_CHECKING(for NeXT) AC_CHECKING(for NeXT)
AC_TEST_PROGRAM([ AC_TRY_RUN([
#ifdef _NEXT_SOURCE #ifdef _NEXT_SOURCE
main() { exit(0); } main() { exit(0); }
#endif #endif
], AC_DEFINE(_POSIX_SOURCE)) ], AC_DEFINE(_POSIX_SOURCE))
# checks for header files # checks for header files
AC_STDC_HEADERS AC_HEADER_STDC
AC_HAVE_HEADERS(dlfcn.h fcntl.h limits.h signal.h stdarg.h stddef.h stdlib.h thread.h unistd.h utime.h sys/audioio.h sys/param.h sys/select.h sys/time.h sys/times.h sys/un.h sys/utsname.h) AC_CHECK_HEADERS(dlfcn.h fcntl.h limits.h signal.h stdarg.h stddef.h stdlib.h thread.h unistd.h utime.h sys/audioio.h sys/param.h sys/select.h sys/time.h sys/times.h sys/un.h sys/utsname.h)
AC_DIR_HEADER AC_HEADER_DIRENT
# checks for typedefs # checks for typedefs
AC_CHECKING(for clock_t in time.h) AC_CHECKING(for clock_t in time.h)
AC_HEADER_EGREP(clock_t, time.h, , AC_DEFINE(clock_t, long)) AC_EGREP_HEADER(clock_t, time.h, , AC_DEFINE(clock_t, long))
AC_MODE_T AC_TYPE_MODE_T
AC_OFF_T AC_TYPE_OFF_T
AC_PID_T AC_TYPE_PID_T
AC_RETSIGTYPE AC_TYPE_SIGNAL
AC_SIZE_T AC_TYPE_SIZE_T
AC_UID_T AC_TYPE_UID_T
# Set name for machine-dependent library files # Set name for machine-dependent library files
AC_SUBST(MACHDEP) AC_SUBST(MACHDEP)
AC_MSG_CHECKING(MACHDEP)
if test -z "$MACHDEP" if test -z "$MACHDEP"
then then
ac_system=`uname -s | tr '[[A-Z]]' '[[a-z]]'` ac_sys_system=`uname -s | tr -d ' ' | tr '[[A-Z]]' '[[a-z]]'`
ac_release=`uname -r | sed 's/\..*//'` ac_sys_release=`uname -r | tr -d ' ' | sed 's/\..*//'`
MACHDEP="$ac_system$ac_release" MACHDEP="$ac_sys_system$ac_sys_release"
case MACHDEP in case MACHDEP in
'') MACHDEP=unknown;; '') MACHDEP=unknown;;
esac esac
AC_VERBOSE(setting MACHDEP to '$MACHDEP')
fi fi
AC_MSG_RESULT($MACHDEP)
# Set info about shared libraries. # Set info about shared libraries.
# XXX This should try things out instead of testing uname! # XXX This should try things out instead of testing uname!
@ -78,68 +73,69 @@ AC_SUBST(SO)
AC_SUBST(LDSHARED) AC_SUBST(LDSHARED)
AC_SUBST(CCSHARED) AC_SUBST(CCSHARED)
AC_SUBST(LINKFORSHARED) AC_SUBST(LINKFORSHARED)
ac_system=`uname -s` ac_sys_system=`uname -s`
ac_release=`uname -r` ac_sys_release=`uname -r`
# SO is the extension of shared libraries `(including the dot!) # SO is the extension of shared libraries `(including the dot!)
# -- usually .so, .sl on HP-UX # -- usually .so, .sl on HP-UX
AC_MSG_CHECKING(SO)
if test -z "$SO" if test -z "$SO"
then then
case $ac_system in case $ac_sys_system in
hp*|HP*) SO=.sl;; hp*|HP*) SO=.sl;;
*) SO=.so;; *) SO=.so;;
esac esac
AC_VERBOSE(setting SO to '$SO')
fi fi
AC_MSG_RESULT($SO)
# LDSHARED is the ld *command* used to create shared library # LDSHARED is the ld *command* used to create shared library
# -- "ld" on SunOS 4.x.x, "ld -G" on SunOS 5.x, "ld -shared" on IRIX 5 # -- "ld" on SunOS 4.x.x, "ld -G" on SunOS 5.x, "ld -shared" on IRIX 5
AC_MSG_CHECKING(LDSHARED)
if test -z "$LDSHARED" if test -z "$LDSHARED"
then then
case $ac_system/$ac_release in case $ac_sys_system/$ac_sys_release in
IRIX*) LDSHARED="ld -shared";; IRIX*) LDSHARED="ld -shared";;
SunOS/4*) LDSHARED="ld";; SunOS/4*) LDSHARED="ld";;
SunOS/5*) LDSHARED="ld -G";; SunOS/5*) LDSHARED="ld -G";;
hp*|HP*) LDSHARED="ld -b";; hp*|HP*) LDSHARED="ld -b";;
*) LDSHARED="ld";; *) LDSHARED="ld";;
esac esac
AC_VERBOSE(setting LDSHARED= to '$LDSHARED')
fi fi
AC_MSG_RESULT($LDSHARED)
# CCSHARED are the C *flags* used to create objects to go into a shared # CCSHARED are the C *flags* used to create objects to go into a shared
# library -- this is only needed for HP-UX # library -- this is only needed for HP-UX
AC_MSG_CHECKING(CCSHARED)
if test -z "$CCSHARED" if test -z "$CCSHARED"
then then
case $ac_system in case $ac_sys_system in
hp*|HP*) CCSHARED="+z";; hp*|HP*) CCSHARED="+z";;
esac esac
AC_VERBOSE(setting CCSHARED= to '$CCSHARED')
fi fi
AC_MSG_RESULT($CCSHARED)
# LINKFORSHARED are the flags passed to the $(CC) command that links # LINKFORSHARED are the flags passed to the $(CC) command that links
# the python executable -- this is only needed for HP-UX # the python executable -- this is only needed for HP-UX
AC_MSG_CHECKING(LINKFORSHARED)
if test -z "$LINKFORSHARED" if test -z "$LINKFORSHARED"
then then
case $ac_system in case $ac_sys_system in
hp*|HP*) LINKFORSHARED="-Wl,-E";; hp*|HP*) LINKFORSHARED="-Wl,-E";;
esac esac
AC_VERBOSE(setting LINKFORSHARED to '$LINKFORSHARED')
fi fi
AC_MSG_RESULT($LINKFORSHARED)
# checks for libraries # checks for libraries
AC_HAVE_LIBRARY(dl) # Dynamic linking for SunOS/Solaris (and SYSV?) AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV
AC_HAVE_LIBRARY(dld) # Dynamic linking for HP-UX AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
AC_CHECK_LIB(sun, getpwnam) # NIS (== YP) interface for IRIX 4
AC_CHECKING(for --with-svr4) AC_CHECK_LIB(socket, socket, [LIBS=-lsocket -linet -lnsl], [], [-linet -lnsl])
AC_WITH(svr4, [
AC_HAVE_LIBRARY(socket)
AC_HAVE_LIBRARY(inet)
AC_HAVE_LIBRARY(nsl)
])
AC_CHECKING(for --with-readline) AC_CHECKING(for --with-readline)
AC_WITH(readline, [AC_DEFINE(WITH_READLINE) AC_ARG_WITH(readline, [--with-readline=DIRECTORY GNU readline], [
AC_DEFINE(WITH_READLINE)
if test ! -d "$withval" if test ! -d "$withval"
then AC_ERROR(proper usage is --with-readline=DIRECTORY) then AC_ERROR(proper usage is --with-readline=DIRECTORY)
fi fi
termcap= termcap=
AC_HAVE_LIBRARY(termcap, [termcap=termcap], [AC_HAVE_LIBRARY(termlib, [termcap=termlib])]) AC_CHECK_LIB(termcap, tgetent, [termcap=termcap], [
AC_CHECK_LIB(termlib, tgetent, [termcap=termlib])])
if test ! -z "$termcap" if test ! -z "$termcap"
then LIBS="$LIBS $withval/libreadline.a" then LIBS="$LIBS $withval/libreadline.a"
# Avoid possible conflict between shared libraries termcap and gl # Avoid possible conflict between shared libraries termcap and gl
@ -152,18 +148,18 @@ else AC_ERROR(no working termcap/termlib, do not use --with-readline)
fi]) fi])
AC_CHECKING(for --with-thread) AC_CHECKING(for --with-thread)
AC_WITH(thread, [ AC_ARG_WITH(thread, [--with-thread[=DIRECTORY] make interpreter thread-safe], [
if test -d "$withval" if test -d "$withval"
then LIBS="$LIBS -L$withval" then LIBS="$LIBS -L$withval"
fi fi
AC_HAVE_LIBRARY(pthreads, [AC_DEFINE(WITH_THREAD) AC_CHECK_LIB(pthreads, pthread_create, [AC_DEFINE(WITH_THREAD)
AC_DEFINE(_POSIX_THREADS) AC_DEFINE(_POSIX_THREADS)
LIBS="$LIBS -lpthreads" LIBS="$LIBS -lpthreads"
LIBOBJS="$LIBOBJS thread.o"]) LIBOBJS="$LIBOBJS thread.o"])
AC_HAVE_LIBRARY(mpc, [AC_DEFINE(WITH_THREAD) AC_CHECK_LIB(mpc, usconfig, [AC_DEFINE(WITH_THREAD)
LIBS="$LIBS -lmpc" LIBS="$LIBS -lmpc"
LIBOBJS="$LIBOBJS thread.o"]) LIBOBJS="$LIBOBJS thread.o"])
AC_HAVE_LIBRARY(thread, [AC_DEFINE(WITH_THREAD) AC_CHECK_LIB(thread, thr_create, [AC_DEFINE(WITH_THREAD)
LIBS="$LIBS -lthread" LIBS="$LIBS -lthread"
LIBOBJS="$LIBOBJS thread.o"]) LIBOBJS="$LIBOBJS thread.o"])
]) ])
@ -173,7 +169,8 @@ AC_SUBST(DLINCLDIR)
DLINCLDIR=/ DLINCLDIR=/
AC_CHECKING(for --with-sgi-dl) AC_CHECKING(for --with-sgi-dl)
AC_WITH(sgi-dl, [AC_DEFINE(WITH_SGI_DL) AC_ARG_WITH(sgi-dl, [--with-sgi-dl=DIRECTORY IRIX 4 dynamic linking], [
AC_DEFINE(WITH_SGI_DL)
dldir=$withval dldir=$withval
if test -d "$dldir" if test -d "$dldir"
then LIBS="$LIBS -L$dldir" then LIBS="$LIBS -L$dldir"
@ -183,7 +180,8 @@ DLINCLDIR=${dldir}
LIBS="$LIBS -ldl -lmld"]) LIBS="$LIBS -ldl -lmld"])
AC_CHECKING(for --with-dl-dld) AC_CHECKING(for --with-dl-dld)
AC_WITH(dl-dld, [AC_DEFINE(WITH_DL_DLD) AC_ARG_WITH(dl-dld, [--with-dl-dld=DL_DIR,DLD_DIR GNU dynamic linking], [
AC_DEFINE(WITH_DL_DLD)
dldir=`echo "$withval" | sed 's/,.*//'` dldir=`echo "$withval" | sed 's/,.*//'`
dlddir=`echo "$withval" | sed 's/.*,//'` dlddir=`echo "$withval" | sed 's/.*,//'`
if test -d "$dldir" -a -d "$dlddir" if test -d "$dldir" -a -d "$dlddir"
@ -194,17 +192,29 @@ DLINCLDIR=${dldir}
LIBS="$LIBS -ldl -ldld"]) LIBS="$LIBS -ldl -ldld"])
# checks for library functions # checks for library functions
AC_HAVE_FUNCS(chown clock dlopen ftime gettimeofday getpeername getpgrp getpid getwd link lstat nice readlink select setgid setuid setsid setpgid setpgrp setvbuf siginterrupt symlink tcgetpgrp tcsetpgrp times uname waitpid) AC_CHECK_FUNCS(chown clock dlopen ftime ftruncate gethostname_r gettimeofday getpeername getpgrp getpid getwd link lstat nice readlink select setgid setuid setsid setpgid setpgrp setvbuf siginterrupt symlink tcgetpgrp tcsetpgrp times truncate uname waitpid)
AC_REPLACE_FUNCS(dup2 getcwd strerror memmove) AC_REPLACE_FUNCS(dup2 getcwd strerror memmove)
AC_FUNC_CHECK(getpgrp, AC_COMPILE_CHECK([argument to getpgrp], [#include <unistd.h>], [getpgrp(0);], AC_DEFINE(GETPGRP_HAVE_ARG))) AC_CHECK_FUNC(getpgrp, AC_TRY_COMPILE([#include <unistd.h>], [getpgrp(0);], AC_DEFINE(GETPGRP_HAVE_ARG)))
AC_FUNC_CHECK(setpgrp, AC_COMPILE_CHECK([arguments to setpgrp], [#include <unistd.h>], [setpgrp(0,0);], AC_DEFINE(SETPGRP_HAVE_ARG))) AC_CHECK_FUNC(setpgrp, AC_TRY_COMPILE([#include <unistd.h>], [setpgrp(0,0);], AC_DEFINE(SETPGRP_HAVE_ARG)))
AC_CHECK_FUNC(gettimeofday, AC_TRY_COMPILE([#include <sys/time.h>], [gettimeofday((struct timeval*)0,(struct timezone*)0);], ,AC_DEFINE(GETTIMEOFDAY_NO_TZ)))
# checks for structures # checks for structures
AC_TIME_WITH_SYS_TIME AC_HEADER_TIME
AC_STRUCT_TM AC_STRUCT_TM
AC_TIMEZONE AC_STRUCT_TIMEZONE
AC_COMPILE_CHECK([whether we have altzone], [#include <time.h>], [return altzone;], AC_DEFINE(HAVE_ALTZONE))
AC_COMPILE_CHECK([whether sys/select.h and sys/time.h may both be included], [ AC_MSG_CHECKING(for time.h that defines altzone)
AC_CACHE_VAL(ac_cv_header_time_altzone,
[AC_TRY_COMPILE([#include <time.h>], [return altzone;],
ac_cv_header_time_altzone=yes,
ac_cv_header_time_altzone=no)])
AC_MSG_RESULT($ac_cv_header_time_altzone)
if test $ac_cv_header_time_altzone = yes; then
AC_DEFINE(HAVE_ALTZONE)
fi
AC_CHECKING(whether sys/select.h and sys/time.h may both be included)
AC_TRY_COMPILE([
#include <sys/types.h> #include <sys/types.h>
#include <sys/select.h> #include <sys/select.h>
#include <sys/time.h> #include <sys/time.h>
@ -212,32 +222,34 @@ AC_COMPILE_CHECK([whether sys/select.h and sys/time.h may both be included], [
# checks for compiler characteristics # checks for compiler characteristics
AC_CHAR_UNSIGNED AC_C_CHAR_UNSIGNED
AC_CONST AC_C_CONST
AC_COMPILE_CHECK([lack of working volatile],[],[volatile int x; x = 0;],,AC_DEFINE(volatile,)) AC_CHECKING(for working volatile)
AC_TRY_COMPILE([],[volatile int x; x = 0;],,AC_DEFINE(volatile, []))
AC_COMPILE_CHECK([lack of working signed char], [], [signed char c;],,AC_DEFINE(signed, [])) AC_CHECKING(for working signed char)
AC_TRY_COMPILE([], [signed char c;],,AC_DEFINE(signed, []))
AC_CHECKING(for prototypes) AC_CHECKING(for prototypes)
AC_TEST_PROGRAM([ AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],
int foo(int x) { return 0; } AC_DEFINE(HAVE_PROTOTYPES) have_prototypes=yes)
int main() { return foo(10); }
], AC_DEFINE(HAVE_PROTOTYPES) have_prototypes=1)
AC_CHECKING(for variable length prototypes and stdarg.h) AC_CHECKING(for variable length prototypes and stdarg.h)
AC_TEST_PROGRAM([ AC_TRY_COMPILE([
#include <stdarg.h> #include <stdarg.h>
int foo(int x, ...) { return 0; } int foo(int x, ...) { return 0; }
int main() { return foo(10, 11, 12); } ], [return foo(10, 11, 12);],
], AC_DEFINE(HAVE_STDARG_PROTOTYPES) have_prototypes=1) AC_DEFINE(HAVE_STDARG_PROTOTYPES))
if test "$have_prototypes"; then if test "$have_prototypes"; then
AC_COMPILE_CHECK(["bad exec* prototypes"], [#include <unistd.h>], [char **t;execve("@",t,t);], , AC_DEFINE(BAD_EXEC_PROTOTYPES)) AC_CHECKING(for bad exec* prototypes)
AC_TRY_COMPILE([#include <unistd.h>], [char **t;execve("@",t,t);], , AC_DEFINE(BAD_EXEC_PROTOTYPES))
fi fi
AC_CHECKING(for bad static forward) AC_CHECKING(for bad static forward)
AC_TEST_PROGRAM([ AC_TRY_RUN([
struct s { int a; int b; }; struct s { int a; int b; };
static struct s foo; static struct s foo;
int foobar() { int foobar() {
@ -251,24 +263,34 @@ main() {
} }
], , AC_DEFINE(BAD_STATIC_FORWARD)) ], , AC_DEFINE(BAD_STATIC_FORWARD))
AC_CHECKING(whether va_list is an array)
AC_TRY_COMPILE([
#ifdef HAVE_STDARG_PROTOTYPES
#include <stdarg.h>
#else
#include <varargs.h>
#endif
], [va_list list1, list2; list1 = list2;], , AC_DEFINE(VA_LIST_IS_ARRAY))
# checks for system services # checks for system services
# (none yet) # (none yet)
# other checks for UNIX variants # Linux requires this for correct f.p. operations
AC_IRIX_SUN AC_CHECK_LIB(ieee, __fpu_control)
AC_XENIX_DIR
# check for --with-libm=... # check for --with-libm=...
AC_SUBST(LIBM) AC_SUBST(LIBM)
LIBM=-lm LIBM=-lm
AC_WITH(libm, [if test "$withval" != yes AC_ARG_WITH(libm, [--with-libm=STRING math library], [
if test "$withval" != yes
then LIBM=$withval then LIBM=$withval
else AC_ERROR(proper usage is --with-libm=STRING) else AC_ERROR(proper usage is --with-libm=STRING)
fi]) fi])
# check for --with-libc=... # check for --with-libc=...
AC_SUBST(LIBC) AC_SUBST(LIBC)
AC_WITH(libc, [if test "$withval" != yes AC_ARG_WITH(libc, [--with-libc=STRING C library], [
if test "$withval" != yes
then LIBC=$withval then LIBC=$withval
else AC_ERROR(proper usage is --with-libc=STRING) else AC_ERROR(proper usage is --with-libc=STRING)
fi]) fi])