mirror of
https://github.com/python/cpython
synced 2024-09-05 08:17:45 +00:00
The usual changes when a release is nearing...
This commit is contained in:
parent
a6c707c679
commit
76be6eda96
113
BUGS
113
BUGS
|
@ -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.
|
||||
|
||||
======================================================================
|
||||
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
|
||||
------------------------------------
|
||||
|
@ -39,21 +132,12 @@ max is >0
|
|||
|
||||
(*) 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
|
||||
------------------------------------
|
||||
|
||||
(*) 2 specific leaks: 1 PYTHONPATH; 2 reading code from .pyc
|
||||
|
||||
(*) If class C doesn't define __cmp__, cmp(a,b) will return -2 and
|
||||
[a,b].sort() will fail
|
||||
|
||||
|
@ -66,9 +150,6 @@ involved.
|
|||
(*) freeze script needs major rewrite to cope with multiple extensions
|
||||
(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
|
||||
that also set a stack trace
|
||||
|
||||
|
@ -158,10 +239,6 @@ end in linefeed
|
|||
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
|
||||
(so what?)
|
||||
|
||||
|
|
199
ChangeLog
199
ChangeLog
|
@ -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) <==
|
||||
|
|
15
Makefile.in
15
Makefile.in
|
@ -33,18 +33,11 @@ RANLIB= @RANLIB@
|
|||
# Machine-dependent subdirectories
|
||||
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
|
||||
prefix= /usr/local
|
||||
prefix= @prefix@
|
||||
|
||||
# Install prefix for architecture-dependent files
|
||||
exec_prefix= $(prefix)
|
||||
exec_prefix= @exec_prefix@
|
||||
|
||||
# Expanded directories
|
||||
MANDIR=$(prefix)/man
|
||||
|
@ -93,7 +86,7 @@ python: Makefiles
|
|||
done
|
||||
|
||||
# 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
|
||||
-rm -f $(srcdir)/Lib/test/*.pyc
|
||||
PYTHONPATH=$(TESTPATH) ./python -c 'import autotest'
|
||||
|
@ -242,7 +235,7 @@ clobber: localclobber
|
|||
# Make things extra clean, before making a distribution
|
||||
distclean: 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 f in $$i/*.in; do \
|
||||
f=`basename "$$f" .in`; \
|
||||
|
|
28
README
28
README
|
@ -1,13 +1,9 @@
|
|||
Python release 1.1.1
|
||||
====================
|
||||
Python release 1.2
|
||||
==================
|
||||
|
||||
==> This is Python version 1.1.1.
|
||||
|
||||
==> Python 1.1.1 is a pure bugfix release. It fixes two core dumps
|
||||
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.
|
||||
==> This version provides new functionality as well as bug fixes.
|
||||
Everyone should upgrade. For a description of what's changed, see
|
||||
Misc/NEWS.
|
||||
|
||||
==> If you don't know yet what Python is: it's an interpreted,
|
||||
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
|
||||
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
|
||||
else than in /usr/local/{bin,lib}, you can pass the option
|
||||
--prefix=DIRECTORY; the interpreter binary will be installed as
|
||||
|
|
68
TODO
68
TODO
|
@ -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
|
||||
forgets a newline
|
||||
|
|
17
acconfig.h
17
acconfig.h
|
@ -15,8 +15,9 @@
|
|||
/* Define if getpgrp() must be called as getpgrp(0). */
|
||||
#undef GETPGRP_HAVE_ARG
|
||||
|
||||
/* Define if setpgrp() must be called as setpgrp(0, 0). */
|
||||
#undef SETPGRP_HAVE_ARG
|
||||
/* Define if gettimeofday() does not have second (timezone) argument
|
||||
This is the case on Motorola V4 (R40V4.2) */
|
||||
#undef GETTIMEOFDAY_NO_TZ
|
||||
|
||||
/* Define this if your time.h defines altzone */
|
||||
#undef HAVE_ALTZONE
|
||||
|
@ -31,6 +32,9 @@
|
|||
/* Define if you have 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. */
|
||||
#undef signed
|
||||
|
||||
|
@ -41,6 +45,12 @@
|
|||
(which you can't on SCO ODT 3.0). */
|
||||
#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.
|
||||
This requires the "dl" library by Jack Jansen,
|
||||
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 */
|
||||
#undef WITH_READLINE
|
||||
|
||||
/* Define to empty if the keyword does not work. */
|
||||
#undef volatile
|
||||
|
||||
|
||||
/* Leave that blank line there-- autoheader needs it! */
|
||||
|
|
140
config.h.in
140
config.h.in
|
@ -13,13 +13,6 @@
|
|||
/* Define to empty if the keyword does not work. */
|
||||
#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. */
|
||||
#undef gid_t
|
||||
|
||||
|
@ -36,9 +29,6 @@
|
|||
/* Define to `int' if <sys/types.h> doesn't define. */
|
||||
#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. */
|
||||
#undef off_t
|
||||
|
||||
|
@ -61,12 +51,6 @@
|
|||
/* Define if you have the ANSI C header files. */
|
||||
#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>. */
|
||||
#undef TIME_WITH_SYS_TIME
|
||||
|
||||
|
@ -76,9 +60,6 @@
|
|||
/* Define to `int' if <sys/types.h> doesn't define. */
|
||||
#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*()
|
||||
(as it does on SGI IRIX 4.x) */
|
||||
#undef BAD_EXEC_PROTOTYPES
|
||||
|
@ -93,8 +74,9 @@
|
|||
/* Define if getpgrp() must be called as getpgrp(0). */
|
||||
#undef GETPGRP_HAVE_ARG
|
||||
|
||||
/* Define if setpgrp() must be called as setpgrp(0, 0). */
|
||||
#undef SETPGRP_HAVE_ARG
|
||||
/* Define if gettimeofday() does not have second (timezone) argument
|
||||
This is the case on Motorola V4 (R40V4.2) */
|
||||
#undef GETTIMEOFDAY_NO_TZ
|
||||
|
||||
/* Define this if your time.h defines altzone */
|
||||
#undef HAVE_ALTZONE
|
||||
|
@ -109,6 +91,9 @@
|
|||
/* Define if you have 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. */
|
||||
#undef signed
|
||||
|
||||
|
@ -116,6 +101,12 @@
|
|||
(which you can't on SCO ODT 3.0). */
|
||||
#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.
|
||||
This requires the "dl" library by Jack Jansen,
|
||||
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 */
|
||||
#undef WITH_READLINE
|
||||
|
||||
/* Define to empty if the keyword does not work. */
|
||||
#undef volatile
|
||||
|
||||
/* Define if you have chown. */
|
||||
/* Define if you have the chown function. */
|
||||
#undef HAVE_CHOWN
|
||||
|
||||
/* Define if you have clock. */
|
||||
/* Define if you have the clock function. */
|
||||
#undef HAVE_CLOCK
|
||||
|
||||
/* Define if you have dlopen. */
|
||||
/* Define if you have the dlopen function. */
|
||||
#undef HAVE_DLOPEN
|
||||
|
||||
/* Define if you have ftime. */
|
||||
/* Define if you have the ftime function. */
|
||||
#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
|
||||
|
||||
/* Define if you have getpgrp. */
|
||||
/* Define if you have the getpgrp function. */
|
||||
#undef HAVE_GETPGRP
|
||||
|
||||
/* Define if you have getpid. */
|
||||
/* Define if you have the getpid function. */
|
||||
#undef HAVE_GETPID
|
||||
|
||||
/* Define if you have gettimeofday. */
|
||||
/* Define if you have the gettimeofday function. */
|
||||
#undef HAVE_GETTIMEOFDAY
|
||||
|
||||
/* Define if you have getwd. */
|
||||
/* Define if you have the getwd function. */
|
||||
#undef HAVE_GETWD
|
||||
|
||||
/* Define if you have link. */
|
||||
/* Define if you have the link function. */
|
||||
#undef HAVE_LINK
|
||||
|
||||
/* Define if you have lstat. */
|
||||
/* Define if you have the lstat function. */
|
||||
#undef HAVE_LSTAT
|
||||
|
||||
/* Define if you have nice. */
|
||||
/* Define if you have the nice function. */
|
||||
#undef HAVE_NICE
|
||||
|
||||
/* Define if you have readlink. */
|
||||
/* Define if you have the readlink function. */
|
||||
#undef HAVE_READLINK
|
||||
|
||||
/* Define if you have select. */
|
||||
/* Define if you have the select function. */
|
||||
#undef HAVE_SELECT
|
||||
|
||||
/* Define if you have setgid. */
|
||||
/* Define if you have the setgid function. */
|
||||
#undef HAVE_SETGID
|
||||
|
||||
/* Define if you have setpgid. */
|
||||
/* Define if you have the setpgid function. */
|
||||
#undef HAVE_SETPGID
|
||||
|
||||
/* Define if you have setpgrp. */
|
||||
/* Define if you have the setpgrp function. */
|
||||
#undef HAVE_SETPGRP
|
||||
|
||||
/* Define if you have setsid. */
|
||||
/* Define if you have the setsid function. */
|
||||
#undef HAVE_SETSID
|
||||
|
||||
/* Define if you have setuid. */
|
||||
/* Define if you have the setuid function. */
|
||||
#undef HAVE_SETUID
|
||||
|
||||
/* Define if you have setvbuf. */
|
||||
/* Define if you have the setvbuf function. */
|
||||
#undef HAVE_SETVBUF
|
||||
|
||||
/* Define if you have siginterrupt. */
|
||||
/* Define if you have the siginterrupt function. */
|
||||
#undef HAVE_SIGINTERRUPT
|
||||
|
||||
/* Define if you have symlink. */
|
||||
/* Define if you have the symlink function. */
|
||||
#undef HAVE_SYMLINK
|
||||
|
||||
/* Define if you have tcgetpgrp. */
|
||||
/* Define if you have the tcgetpgrp function. */
|
||||
#undef HAVE_TCGETPGRP
|
||||
|
||||
/* Define if you have tcsetpgrp. */
|
||||
/* Define if you have the tcsetpgrp function. */
|
||||
#undef HAVE_TCSETPGRP
|
||||
|
||||
/* Define if you have times. */
|
||||
/* Define if you have the times function. */
|
||||
#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
|
||||
|
||||
/* Define if you have waitpid. */
|
||||
/* Define if you have the waitpid function. */
|
||||
#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. */
|
||||
#undef HAVE_DLFCN_H
|
||||
|
||||
|
@ -233,6 +233,9 @@
|
|||
/* Define if you have the <limits.h> header file. */
|
||||
#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. */
|
||||
#undef HAVE_SIGNAL_H
|
||||
|
||||
|
@ -248,6 +251,12 @@
|
|||
/* Define if you have the <sys/audioio.h> header file. */
|
||||
#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. */
|
||||
#undef HAVE_SYS_PARAM_H
|
||||
|
||||
|
@ -278,32 +287,11 @@
|
|||
/* Define if you have the dl library (-ldl). */
|
||||
#undef HAVE_LIBDL
|
||||
|
||||
/* Define if you have the inet library (-linet). */
|
||||
#undef HAVE_LIBINET
|
||||
/* Define if you have the dld library (-ldld). */
|
||||
#undef HAVE_LIBDLD
|
||||
|
||||
/* Define if you have the mpc library (-lmpc). */
|
||||
#undef HAVE_LIBMPC
|
||||
|
||||
/* 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 ieee library (-lieee). */
|
||||
#undef HAVE_LIBIEEE
|
||||
|
||||
/* Define if you have the sun library (-lsun). */
|
||||
#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
|
||||
|
|
180
configure.in
180
configure.in
|
@ -1,16 +1,12 @@
|
|||
dnl Process this file with autoconf 1.8 or later to make a configure script.
|
||||
AC_REVISION($Revision$)dnl
|
||||
AC_PREREQ(1.8)dnl
|
||||
dnl Process this file with autoconf 2.0 or later to make a configure script.
|
||||
AC_REVISION($Revision$)
|
||||
AC_PREREQ(2.0)
|
||||
AC_INIT(Include/object.h)
|
||||
AC_CONFIG_HEADER(config.h)dnl
|
||||
# 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')
|
||||
AC_CONFIG_HEADER(config.h)
|
||||
|
||||
# checks for alternative programs
|
||||
AC_CHECKING(for --with(out)-gcc)
|
||||
AC_WITH(gcc, [
|
||||
AC_ARG_WITH(gcc, [--without-gcc never use gcc], [
|
||||
case $withval in
|
||||
no) withval=cc;;
|
||||
yes) withval=gcc;;
|
||||
|
@ -19,7 +15,7 @@ AC_WITH(gcc, [
|
|||
AC_PROG_CC
|
||||
AC_PROG_RANLIB
|
||||
AC_SUBST(AR)
|
||||
AC_PROGRAMS_CHECK(AR, ar aal, ar)
|
||||
AC_CHECK_PROGS(AR, ar aal, ar)
|
||||
AC_SUBST(INSTALL)
|
||||
# Install just never works :-(
|
||||
if test -z "$INSTALL"
|
||||
|
@ -35,42 +31,41 @@ fi
|
|||
AC_AIX
|
||||
AC_ISC_POSIX
|
||||
AC_MINIX
|
||||
dnl DYNIX test runs compile so must be last
|
||||
AC_DYNIX_SEQ
|
||||
AC_CHECKING(for NeXT)
|
||||
AC_TEST_PROGRAM([
|
||||
AC_TRY_RUN([
|
||||
#ifdef _NEXT_SOURCE
|
||||
main() { exit(0); }
|
||||
#endif
|
||||
], AC_DEFINE(_POSIX_SOURCE))
|
||||
|
||||
# checks for header files
|
||||
AC_STDC_HEADERS
|
||||
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_DIR_HEADER
|
||||
AC_HEADER_STDC
|
||||
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_HEADER_DIRENT
|
||||
|
||||
# checks for typedefs
|
||||
AC_CHECKING(for clock_t in time.h)
|
||||
AC_HEADER_EGREP(clock_t, time.h, , AC_DEFINE(clock_t, long))
|
||||
AC_MODE_T
|
||||
AC_OFF_T
|
||||
AC_PID_T
|
||||
AC_RETSIGTYPE
|
||||
AC_SIZE_T
|
||||
AC_UID_T
|
||||
AC_EGREP_HEADER(clock_t, time.h, , AC_DEFINE(clock_t, long))
|
||||
AC_TYPE_MODE_T
|
||||
AC_TYPE_OFF_T
|
||||
AC_TYPE_PID_T
|
||||
AC_TYPE_SIGNAL
|
||||
AC_TYPE_SIZE_T
|
||||
AC_TYPE_UID_T
|
||||
|
||||
# Set name for machine-dependent library files
|
||||
AC_SUBST(MACHDEP)
|
||||
AC_MSG_CHECKING(MACHDEP)
|
||||
if test -z "$MACHDEP"
|
||||
then
|
||||
ac_system=`uname -s | tr '[[A-Z]]' '[[a-z]]'`
|
||||
ac_release=`uname -r | sed 's/\..*//'`
|
||||
MACHDEP="$ac_system$ac_release"
|
||||
ac_sys_system=`uname -s | tr -d ' ' | tr '[[A-Z]]' '[[a-z]]'`
|
||||
ac_sys_release=`uname -r | tr -d ' ' | sed 's/\..*//'`
|
||||
MACHDEP="$ac_sys_system$ac_sys_release"
|
||||
case MACHDEP in
|
||||
'') MACHDEP=unknown;;
|
||||
esac
|
||||
AC_VERBOSE(setting MACHDEP to '$MACHDEP')
|
||||
fi
|
||||
AC_MSG_RESULT($MACHDEP)
|
||||
|
||||
# Set info about shared libraries.
|
||||
# XXX This should try things out instead of testing uname!
|
||||
|
@ -78,68 +73,69 @@ AC_SUBST(SO)
|
|||
AC_SUBST(LDSHARED)
|
||||
AC_SUBST(CCSHARED)
|
||||
AC_SUBST(LINKFORSHARED)
|
||||
ac_system=`uname -s`
|
||||
ac_release=`uname -r`
|
||||
ac_sys_system=`uname -s`
|
||||
ac_sys_release=`uname -r`
|
||||
# SO is the extension of shared libraries `(including the dot!)
|
||||
# -- usually .so, .sl on HP-UX
|
||||
AC_MSG_CHECKING(SO)
|
||||
if test -z "$SO"
|
||||
then
|
||||
case $ac_system in
|
||||
case $ac_sys_system in
|
||||
hp*|HP*) SO=.sl;;
|
||||
*) SO=.so;;
|
||||
esac
|
||||
AC_VERBOSE(setting SO to '$SO')
|
||||
fi
|
||||
AC_MSG_RESULT($SO)
|
||||
# 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
|
||||
AC_MSG_CHECKING(LDSHARED)
|
||||
if test -z "$LDSHARED"
|
||||
then
|
||||
case $ac_system/$ac_release in
|
||||
case $ac_sys_system/$ac_sys_release in
|
||||
IRIX*) LDSHARED="ld -shared";;
|
||||
SunOS/4*) LDSHARED="ld";;
|
||||
SunOS/5*) LDSHARED="ld -G";;
|
||||
hp*|HP*) LDSHARED="ld -b";;
|
||||
*) LDSHARED="ld";;
|
||||
esac
|
||||
AC_VERBOSE(setting LDSHARED= to '$LDSHARED')
|
||||
fi
|
||||
AC_MSG_RESULT($LDSHARED)
|
||||
# CCSHARED are the C *flags* used to create objects to go into a shared
|
||||
# library -- this is only needed for HP-UX
|
||||
AC_MSG_CHECKING(CCSHARED)
|
||||
if test -z "$CCSHARED"
|
||||
then
|
||||
case $ac_system in
|
||||
case $ac_sys_system in
|
||||
hp*|HP*) CCSHARED="+z";;
|
||||
esac
|
||||
AC_VERBOSE(setting CCSHARED= to '$CCSHARED')
|
||||
fi
|
||||
AC_MSG_RESULT($CCSHARED)
|
||||
# LINKFORSHARED are the flags passed to the $(CC) command that links
|
||||
# the python executable -- this is only needed for HP-UX
|
||||
AC_MSG_CHECKING(LINKFORSHARED)
|
||||
if test -z "$LINKFORSHARED"
|
||||
then
|
||||
case $ac_system in
|
||||
case $ac_sys_system in
|
||||
hp*|HP*) LINKFORSHARED="-Wl,-E";;
|
||||
esac
|
||||
AC_VERBOSE(setting LINKFORSHARED to '$LINKFORSHARED')
|
||||
fi
|
||||
AC_MSG_RESULT($LINKFORSHARED)
|
||||
|
||||
# checks for libraries
|
||||
AC_HAVE_LIBRARY(dl) # Dynamic linking for SunOS/Solaris (and SYSV?)
|
||||
AC_HAVE_LIBRARY(dld) # Dynamic linking for HP-UX
|
||||
|
||||
AC_CHECKING(for --with-svr4)
|
||||
AC_WITH(svr4, [
|
||||
AC_HAVE_LIBRARY(socket)
|
||||
AC_HAVE_LIBRARY(inet)
|
||||
AC_HAVE_LIBRARY(nsl)
|
||||
])
|
||||
AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV
|
||||
AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
|
||||
AC_CHECK_LIB(sun, getpwnam) # NIS (== YP) interface for IRIX 4
|
||||
AC_CHECK_LIB(socket, socket, [LIBS=-lsocket -linet -lnsl], [], [-linet -lnsl])
|
||||
|
||||
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"
|
||||
then AC_ERROR(proper usage is --with-readline=DIRECTORY)
|
||||
fi
|
||||
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"
|
||||
then LIBS="$LIBS $withval/libreadline.a"
|
||||
# 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])
|
||||
|
||||
AC_CHECKING(for --with-thread)
|
||||
AC_WITH(thread, [
|
||||
AC_ARG_WITH(thread, [--with-thread[=DIRECTORY] make interpreter thread-safe], [
|
||||
if test -d "$withval"
|
||||
then LIBS="$LIBS -L$withval"
|
||||
fi
|
||||
AC_HAVE_LIBRARY(pthreads, [AC_DEFINE(WITH_THREAD)
|
||||
AC_CHECK_LIB(pthreads, pthread_create, [AC_DEFINE(WITH_THREAD)
|
||||
AC_DEFINE(_POSIX_THREADS)
|
||||
LIBS="$LIBS -lpthreads"
|
||||
LIBOBJS="$LIBOBJS thread.o"])
|
||||
AC_HAVE_LIBRARY(mpc, [AC_DEFINE(WITH_THREAD)
|
||||
AC_CHECK_LIB(mpc, usconfig, [AC_DEFINE(WITH_THREAD)
|
||||
LIBS="$LIBS -lmpc"
|
||||
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"
|
||||
LIBOBJS="$LIBOBJS thread.o"])
|
||||
])
|
||||
|
@ -173,7 +169,8 @@ AC_SUBST(DLINCLDIR)
|
|||
DLINCLDIR=/
|
||||
|
||||
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
|
||||
if test -d "$dldir"
|
||||
then LIBS="$LIBS -L$dldir"
|
||||
|
@ -183,7 +180,8 @@ DLINCLDIR=${dldir}
|
|||
LIBS="$LIBS -ldl -lmld"])
|
||||
|
||||
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/,.*//'`
|
||||
dlddir=`echo "$withval" | sed 's/.*,//'`
|
||||
if test -d "$dldir" -a -d "$dlddir"
|
||||
|
@ -194,17 +192,29 @@ DLINCLDIR=${dldir}
|
|||
LIBS="$LIBS -ldl -ldld"])
|
||||
|
||||
# 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_FUNC_CHECK(getpgrp, AC_COMPILE_CHECK([argument to getpgrp], [#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(getpgrp, AC_TRY_COMPILE([#include <unistd.h>], [getpgrp(0);], AC_DEFINE(GETPGRP_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
|
||||
AC_TIME_WITH_SYS_TIME
|
||||
AC_HEADER_TIME
|
||||
AC_STRUCT_TM
|
||||
AC_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_STRUCT_TIMEZONE
|
||||
|
||||
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/select.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
|
||||
|
||||
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_TEST_PROGRAM([
|
||||
int foo(int x) { return 0; }
|
||||
int main() { return foo(10); }
|
||||
], AC_DEFINE(HAVE_PROTOTYPES) have_prototypes=1)
|
||||
AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],
|
||||
AC_DEFINE(HAVE_PROTOTYPES) have_prototypes=yes)
|
||||
|
||||
AC_CHECKING(for variable length prototypes and stdarg.h)
|
||||
AC_TEST_PROGRAM([
|
||||
AC_TRY_COMPILE([
|
||||
#include <stdarg.h>
|
||||
int foo(int x, ...) { return 0; }
|
||||
int main() { return foo(10, 11, 12); }
|
||||
], AC_DEFINE(HAVE_STDARG_PROTOTYPES) have_prototypes=1)
|
||||
], [return foo(10, 11, 12);],
|
||||
AC_DEFINE(HAVE_STDARG_PROTOTYPES))
|
||||
|
||||
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
|
||||
|
||||
AC_CHECKING(for bad static forward)
|
||||
AC_TEST_PROGRAM([
|
||||
AC_TRY_RUN([
|
||||
struct s { int a; int b; };
|
||||
static struct s foo;
|
||||
int foobar() {
|
||||
|
@ -251,24 +263,34 @@ main() {
|
|||
}
|
||||
], , 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
|
||||
# (none yet)
|
||||
|
||||
# other checks for UNIX variants
|
||||
AC_IRIX_SUN
|
||||
AC_XENIX_DIR
|
||||
# Linux requires this for correct f.p. operations
|
||||
AC_CHECK_LIB(ieee, __fpu_control)
|
||||
|
||||
# check for --with-libm=...
|
||||
AC_SUBST(LIBM)
|
||||
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
|
||||
else AC_ERROR(proper usage is --with-libm=STRING)
|
||||
fi])
|
||||
|
||||
# check for --with-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
|
||||
else AC_ERROR(proper usage is --with-libc=STRING)
|
||||
fi])
|
||||
|
|
Loading…
Reference in a new issue