Commit Graph

646 Commits (master)

Author SHA1 Message Date
Sébastien Hinderer 69316099b0 Fix BFD support on OpenBSD 2019-11-28 16:20:03 +01:00
Konstantin Romanov d11a60bc22 Add attribute(align()) detection and fix XLC build. 2019-11-25 20:39:52 +01:00
David Allsopp 75983ab9b1 Ensure Makefile.config gets Windows-style prefix
Prefix may be passed to configure using a Cygwin-style PATH (e.g.
`./configure --prefix ~/local`). Use cygpath to ensure that the correct
version gets written to Makefile.config, or the resulting compiler has
an invalid default stdlib path.
2019-11-25 14:14:59 +01:00
Greta Yorsh 4da56cb632 Disallow function sections for arm32 (#9125)
Disallow function sections on arm32, as the simplest way to address issue #9124 and get the CI working on the newer versions of GNU binutils for Raspbian. After this change, configure --enable-function-sections is an error on arm32.  When the issue with GNU ld is resolved, this can be added back with appropriate checks on version of binutils.

Closes: #9124
2019-11-18 17:15:11 +01:00
Kate e0ee2f7a05 Fix configure: Define the CAML_SAFE_STRING variable when force-safe-string is on 2019-11-14 11:18:43 +00:00
Damien Doligez 01bdd5bbc4
best-fit allocator (#8809) 2019-10-15 13:52:16 +02:00
Gabriel Scherer 7e34c1ea1e
Merge pull request #8995 from dra27/dev-opts
Allow development configure options to be stored in Git 🏅
2019-10-05 18:44:25 +02:00
Gabriel Scherer e232369580
Merge pull request #8835 from dra27/save-the-planet
New configure option to disable building and installing library manpages
2019-10-05 16:52:16 +02:00
David Allsopp 4f09104d88 Allow by-host worktree-sharable configure caches
The Git configuration value ocaml.configure-cache can be used to specify
a directory to keep autoconf cache files in, relative to the worktree
root (so `git config ocaml.configure-cache .` enables the feature, and
`git config --global ocaml.configure-cache ..` enables it for all
worktrees, assuming they're at the same level).

autoconf's --cache-file option speeds up future runs of configure by
caching the results of previous tests. The cache is invalidated if any
environment variables differ (e.g. LDFLAGS) or if the build-host-target
triplet differs. This is a nuisance on Windows, where configure is both
very slow and it's also common to build with multiple different --host
values.

This PR allows a tree to be quickly reconfigured from one Windows port
to another.
2019-10-05 14:50:57 +01:00
David Allsopp 345fd4c3f9 Allow Git config options to be passed to configure
The Git configuration value ocaml.configure is now passed to the
configure script's arguments before $@ if (and only if) OCaml is being
configured from a Git clone.

This allows, for example:

- Developer-specific preferences (e.g. `--disable-ocamldoc` or
  `--disable-debug-runtime`)
- Automatic use of autoconf cach files (-C option)

It is implemented by inserting a test at the top of `configure`, which
is bypassed if `.git` doesn't exist.
2019-10-05 14:50:35 +01:00
Sébastien Hinderer 987b0814d7 Let make's default target build the compiler
This commit makes it possible to build the OCaml compiler according to
its configuration by simply runnning make. There is no need to specify
neither world nor world.opt explicitly, although the two targets
remain available.

This commit also introduces (and starts making use of) the
NATIVE_COMPILER build variable whosse value is true when the native
compiler is enabled and false otherwise.
2019-09-30 16:01:29 +02:00
David Allsopp 0912745754 Make STDLIB_MANPAGES a boolean, not a target 2019-09-27 17:13:42 +01:00
David Allsopp 2d717cb71a Add --disable-stdlib-manpages to configure 2019-09-27 17:13:24 +01:00
Sébastien Hinderer ff20676fdc configure: improve support for the BFD library
This commit adds:

- The --with-bfd command-line option

- The BFD_INCLUDE_DIR and BFD_LIB_DIR configuration variables
2019-09-23 14:48:48 +02:00
Sébastien Hinderer e3b33a5750 Build system: introduce the BFD_LDFLAGS variable
This variable is not really used yet but will be used soon.
2019-09-23 14:45:54 +02:00
Sébastien Hinderer 762fe0abaa Build system: rename the LIBBFD_INCLUDE variable to BFD_CPPFLAGS 2019-09-23 14:45:54 +02:00
Sébastien Hinderer d718cd9db3 Build system: rename the LIBBFD_LINK variable to BFD_LDFLAGS 2019-09-23 14:45:54 +02:00
Sébastien Hinderer 3d642545e8 configure: fix typo in variable name 2019-09-23 14:45:54 +02:00
Kate c01dbc1bab Enable force-safe-string by default (#1859)
* Enable force-safe-string by default

* Run the autogen script

* Add a line to the changelog

* Remove test using the -unsafe-string argument

* Disable program comparison for tests giving different binaries between ocamlopt.opt and ocamlopt.byte after switching to force-safe-string by default

* Add a comment where the compare_programs tests have been disabled to refer to an explaination of the problem
2019-09-10 17:49:20 +02:00
Stephen Dolan 5e4b55d3bd Use the autoconf- or system-provided off_t rather than redetecting. (#8843)
Fixes: #8841
2019-07-31 13:56:26 +02:00
David Allsopp c43d198cfa Merge pull request #8830 from glondu/4.08-configure-fixes
Small fixes in configure.ac

(cherry-picked from commit 1e610e2703927144786c2e62907cd07e28677a0f)
2019-07-30 10:55:58 +01:00
Greta Yorsh 2857be6cf7 Error in configure --enable-function-sections if target doesn't support it
If the user explicitly requests function sections by calling configure
with --enable-function-sections on a target that does not support it,
it's an error at configure time.
2019-07-15 10:25:26 +01:00
Greta Yorsh 351edb49bb Add compile-time option -function-sections 2019-07-15 10:25:26 +01:00
Greta Yorsh 27a92a9445 Emit each function in a separate section (amd64,i386,arm,arm64)
Add --enable-function-sections option to configure. With this option,
the compiler will emit each function in a separate named text section,
on supported targets. This enables function reordering using a linker
script. With this option, the compiler also emits caml_hot__code_begin
and caml_hot__code_end sections. This allows a linker script to
move function sections outside of the segments they belong to,
without breaking caml_code_segments.
2019-07-15 10:25:26 +01:00
David Allsopp c37a6e5d90
Fix --with-pic in configure (#8632)
--with-pic should be adding -fPIC (or equivalent) to $internal_cflags,
not $common_cflags. Additionally, unused variable aspp was being
updated, instead of ASPP.
2019-05-21 11:07:47 +01:00
Sébastien Hinderer b694e84aff configure: fix libunwind and spacetime support 2019-05-20 16:37:41 +02:00
Sébastien Hinderer 17feab2a4f
configure: use variables rather than arguments for a few options (#8616)
This commit replaces a few configure command-line options by configuration
variables:

- "--with-dllibs" is replaced by DLLIBS
- "--with-reserved-header-bits" is replaced by RESERVED_HEADER_BITS
- "--with-default-string" is replaced by DEFAULT_STRING
2019-05-09 16:39:06 +02:00
David Allsopp b818e2af91 Correct MKEXEDEBUGFLAG for msvc (#8638) 2019-05-03 09:25:37 +02:00
David Allsopp 8838dc7527 Don't generate #! headers over 127 characters
A #! line should not exceed 128 characters (including the \0
terminator). This adds a test - both to the generation of the camlheader
files and also to the -use-runtime flag which falls back to #!/bin/sh
and uses exec to invoke the the interpreter.
2019-05-02 20:29:49 +02:00
David Allsopp 4dc48fafaf Enable SSE2 for i686 mingw32
GCC 7.4 generates incorrect code for caml_round by using 80-bit registers
instead of 64-bit registers for the calculations.
2019-04-19 20:44:49 +02:00
David Allsopp c78923f179 Remove --runstatedir from configure 2019-04-02 16:35:36 +01:00
Sébastien Hinderer ff1e848f8c Finish removing PPC/non-Linux support (#8536)
This commit removes the remaining traces of support
for the Power/PowerPC architecture with OS other than Linux.
ocamlopt stopped supporting those configurations in 2014,
see commit  8815d7e and following.
2019-03-26 20:12:23 +01:00
Greg V f746a0024e Add FreeBSD/aarch64 support
Using the clang/llvm assembler avoids an extra dependency on GNU binutils, and that's what 32-bit arm is using.
But in this case, there was a problem with floating point immediates: LLVM thinks that if they're written in hex, they must be integer values between 0 and 255.
Changed them to float literals.
2019-03-22 15:35:43 +03:00
Sébastien Hinderer 6db4eadc5e
Fix alignment detection for long integers on 32-bits platforms (#8532) 2019-03-21 19:16:16 +01:00
Sébastien Hinderer b56c4ff3d0
Get rid of the direct call to the C preprocessor in the testsuite (#8528)
Call the C preprocessor through the C compiler rather than calling it
directly.

This required the definition of a new ocamltest variable,
ocaml_filetype_flag, which makes it possible to override the filetype
inferred by the compiler from the extnesion of the source file.
2019-03-21 18:12:43 +01:00
Stephen Dolan 58ef7303bb Remove some unused configure tests. (#8533) 2019-03-21 17:35:59 +01:00
Konstantin Romanov f1a1347e7b Reenable XLC on AIX 7.x (#2295) 2019-03-21 17:13:35 +01:00
Jérémie Dimino c413136fa3 Delete otherlib/{graph,win32graph} (#2318)
The Graphics library is now distributed as a separate package.
The sources are at https://github.com/ocaml/graphics .

Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2019-03-18 15:05:57 +01:00
Mark Shinwell 2cc1ea26b9 Remove gprof support (#2314)
This commit removes support for gprof-based profiling (the -p option to ocamlopt).  It follows a discussion on the core developers' list, which indicated that removing gprof support was a reasonable thing to do. The rationale is that there are better easy-to-use profilers out there now, such as perf for Linux and Instruments on macOS; and the gprof support has always been patchy across targets. We save a whole build of the runtime and simplify some other parts of the codebase by removing it.
2019-03-16 19:56:53 +01:00
Sébastien Hinderer 5b5513963b Fix detection of assembler on some platforms
This commit fixes MPR#7919
2019-03-13 10:49:31 +00:00
Sébastien Hinderer f48b107bc7 Clarify the invocation of the C preprocessor
Most of the time, the C preprocessor needs to be invoked through the C
compiler, e.g. so that the paths to the header files are resolved properly.
In some cases, though, we really need to be able to call the C
preprocessor directly, just to expand macros in .ml files (this only
happens in the testsuite, at the moment). In those cases, it is
simply impossible to call the C preprocessor through the compiler,
e.g. because this would require the input files to have a '.c'
extension, which the OCaml compiler would misinterprete as meaning this file
should be compiled with the C compiler.

Thus, this commit clarifies the distinction between CPP and DIRECT_CPP
and provides both variables to the build system. The ocamltest build system
is also updated to take advantage of this.

We rely on autoconf's macros to detect how to call the C preprocessor
via the C compiler, except for the MSVC port where its value is hard-coded
to guarantee backward compatibility.
2019-03-13 10:49:31 +00:00
Jérémie Dimino 705054b346 Delete the vmthreads library (#2289)
* Delete the deprecated vmthreads library

It was deprecated in 4.08.

* Remove the byte/native argument of init_path

It is no longer necessary.

* Error out when passing --{enable,disable}-vmthreads to ./configure

Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
2019-03-11 19:38:16 +01:00
Mark Shinwell 784c9da23c Remove IA32 macOS (Darwin) support (#2278)
This patch removes support for 32-bit Darwin (macOS, iOS, etc) targets on Intel hardware. This enables various special cases to be removed in the i386 backend.  

The current version of macOS (Mojave) is the last one that will support 32-bit x86 binaries.  The current version of iOS does not support execution of 32-bit binaries any more.
2019-03-07 11:12:00 +01:00
David Allsopp f0f74587a6 Use emulated fma on Cygwin64 (#2177)
Cygwin is based on newlib, not glibc, and the fma function is not
implemented. Split off HAS_WORKING_FMA from HAS_C99_FLOAT_OPS. Disable
fma for Cygwin64 so that the fma test passes.
2019-03-01 14:50:34 +01:00
David Allsopp 899b48a6df Cygwin should have EXE=.exe (#2266) 2019-02-28 11:41:47 +01:00
Nicolás Ojeda Bär 60a7320619 configure: add WINDOWS_UNICODE_MODE variable 2019-02-27 11:42:04 +01:00
Fourchaux 1946594bd7 Fixing typos in various files (#2246)
Note: Typos found with https://github.com/codespell-project/codespell

Here is the (semi-manual) command used to get (and correct) the typos:

$ codespell -i 3 -w --skip=".png,.gif,./ocaml/boot,./ocaml/.git,./ocaml/manual/styles,./ocaml/manual/manual/htmlman" -L minimise,instal,contructor,"o'caml",cristal,pres,clos,cmo,uint,iff,te,objext,nto,nd,mut,upto,larg,exten,leage,mthod,delte,tim,atleast,langage,hten,iwth,mke,contant,succint,methids,eles,valu,clas,modul,que,classe,missings,froms,defaut,correspondance,differents,configury,reachs,cas,approche,normale,dur,millon,amin,oje,transfert
2019-02-13 14:04:56 +01:00
Leo White 4cb9ee9e8b
Fix configure of flambda (#2241) 2019-02-11 09:52:48 +00:00
David Allsopp 0f0d8e2d76 Propagate --disable-shared correctly on Unix
The --disable-shared option is not presently possible on the native
Windows ports, though this isn't (yet) enforced by configure.
2019-02-01 16:18:53 +01:00
Sébastien Hinderer 6986d63438 Fix help text for configure's --enable-force-safe-string option
Make clear that strings are not forced to be safe by default.
2019-01-22 17:01:49 +01:00
Sébastien Hinderer bc5907724f Clarify the help text for the debugger-related configure option 2019-01-22 16:51:12 +01:00
Sébastien Hinderer 6defc420d2 Fix typo in configure's help 2019-01-22 13:50:03 +01:00
David Allsopp 1dcb9d618b Add --disable-bigarray-lib
Disables building the legacy bigarray library without also having to
disable the unix library.
2019-01-08 17:59:44 +01:00
David Allsopp 832db132d9 Make unix, vmthreads and str optional libraries
--disable-unix-lib, --disable-vmthreads and --disable-str-lib added to
prevent building these three libraries.

ocamldoc, the debugger and caml-tex are automatically disabled if their
prerequisites are not built. Using --enable-debugger and
--enable-ocamldoc will result in errors if these tools cannot be built.
2019-01-08 17:27:42 +01:00
David Allsopp 91611d0b77 Rename --enable-pthread to --enable-systhreads
Name better reflects the cross-platform nature of the library.
2019-01-08 17:27:37 +01:00
David Allsopp 8e504739f8 Fix --disable-pthread
$systhread_support must be a valid OCaml boolean, as it gets written to
tools/config.ml
2019-01-08 17:25:54 +01:00
Sébastien Hinderer cc3f70b705 Use autoconf to generate the compiler's configuration script 2018-12-21 16:02:47 +01:00
Laurent Thévenoux db99969bc8 Support FMA operation (#1354)
Adds a fused multiply-add operation to the Float module.

The following changes are made:
- configure: check math.h for the C99 fma() operation.
- fma declarations in float.ml[i] (stdlib/).
- C fma() call or emulation in runtime/floats.c.
- dedicated tests in testsuite/tests/fma.
2018-10-26 10:45:36 +02:00
Sébastien Hinderer 6eea292727
Remove the dl_needs_underscore feature (#2115)
This feature could not be enabled anyway
2018-10-25 15:12:22 +02:00
Sébastien Hinderer e473b67081 runtime: move the definition of INT64_LITERAL from m.h to config.h 2018-10-23 09:01:29 +02:00
Sébastien Hinderer b799715cae tools: move the definition of mklib from ocamlmklibconfig.ml to ocamlmklib.ml 2018-10-23 09:01:29 +02:00
Sébastien Hinderer 04d24edec0 tools: move the definition of syslib from ocamlmklibconfig.ml to ocamlmklib.ml 2018-10-23 09:01:29 +02:00
Sébastien Hinderer ccae1e2876
Define OCAML_STDLIB_DIR in runtime/Makefile rather than in s.h (#2059) 2018-09-25 16:04:11 +02:00
Sébastien Hinderer 132b3a151d
Get rid of the standard_runtime configuration variable (#2066)
This configuration variable was formerly used by the -make_runtime and
-use_runtime option but this is no longer the case.
2018-09-25 15:29:18 +02:00
Sébastien Hinderer ba6362a07d Move config/Makefile to Makefile.config
In order to prepare the transition to autoconf, this commit moves the
configuration Makefile out of the config directory which will disappear
and gives it the name it will have once intstalled, namely Makefile.config.
2018-09-17 14:23:35 +02:00
Sébastien Hinderer 7b28143ecb Change the way ARCH_CODE32 is defined
Before this commit, this C preprocessor macro was defined in
byterun/caml/m.h by the configure script, but just on some architectures
and only in non-PIC mode.

This commit introduces the HAS_ARCH_CODE32 predicate which is inserted
in the m.h file when this is relevant, the ifdef block on PIC
being moved to config.h.

This is to prepare the switch to autoconf, since header files processed
by config.status are not allowed to contain ifdef blocks.
2018-09-17 14:23:35 +02:00
Sébastien Hinderer 6676d9544c
Stop supporting obsolete platforms (#2024)
This commit simplifies the configure script by removing the support
for obsolete platforms. The list of removed platforms is documented
in the associated Changes entry.
2018-09-06 15:52:01 +02:00
Xavier Clerc 7e29162582 Pass the elements from `BUILD_PATH_PREFIX_MAP` to the assembler (#1930) 2018-07-27 12:25:23 +02:00
Xavier Leroy 7e79186a12
Remove the C plugins mechanism (#1867)
The mechanism complicates the runtime system and is not very general
(only a few system functions are instrumented).  There are other ways
to intercept system calls that are more general and require no
modification to the source code of the runtime system.
2018-07-03 18:22:51 +01:00
Sébastien Hinderer d3e73595e5 Merge the asmrun and byterun directories into the runtime directory 2018-06-28 17:50:33 +02:00
Xavier Clerc 9c182f7e24 Add -dcamlprimc + pass -fdebug-prefix-map when available (#1845)
- Introduce `-dcamlprimc`, to keep the generated C file containing the primitive list
- Use `-fdebug-prefix-map` for compiling temporary C files when this option is supported
2018-06-27 14:56:29 +01:00
Sébastien Hinderer fc835fe41e Remove the BYTECCCOMPOPTS build variable
This variable is actually never defined.
2018-06-25 07:07:40 +02:00
Sébastien Hinderer 85fa27f7e9 Rename C compiler related build variables
This commit renames a few C compiler related build variables so that
they are reserved for the build system. They will then be re-introduced,
but this time as user varialbes whose value can be freely customized
when compiling the package, without risking to conflict with those
command-line flags that are required by the build system itself.

Here are the variables this commit renames:

- CFLAGS -> OC_CFLAGS
- CPPFLAGS -> OC_CPPFLAGS
- LDFLAGS -> OC_LDFLAGS

Note: before this commit the compilation of scheduler.c in
otherlibs/threads was relying on make's implicit rule to compile C files.

Since this commit stops using the standard variables for flags,
it is necessary to introduce an explicit rule to compile C files
and that makes use of the newly introduced variables.
2018-06-20 14:01:42 +02:00
Sébastien Hinderer a10a3f5806 Rename build variable SHAREDCCCOMPOPTS to SHAREDLIB_CFLAGS 2018-06-20 14:01:42 +02:00
David Allsopp b5d1929e87 Whitespace and overlong line fixes. 2018-06-14 15:15:34 +01:00
Sébastien Hinderer c226df2716 Remove the NATIVECCPROFOPTS build variable
This variable is actually always empty
2018-06-14 15:25:39 +02:00
David Allsopp 02a3091a7d Export ARCH64 to config/Makefile as well as m.h
Allows it to be used more easily in the build system.
2018-06-11 22:52:00 +01:00
ygrek 1739e4ee13 include xlocale.h if available (because OSX)
ref https://github.com/ocaml/ocaml/pull/1682#issuecomment-377524854
2018-06-01 21:05:10 +02:00
ygrek b8dde22c46 avoid duplocale due to different semantics on BSD
https://www.freebsd.org/cgi/man.cgi?query=newlocale&sektion=3
2018-06-01 21:05:10 +02:00
ygrek 36d142e058 make string_of_float and float_of_string locale-independent 2018-06-01 21:05:10 +02:00
Sébastien Hinderer 09bf2fae0e configure should remove hashbang4 2018-05-18 09:17:59 +02:00
Mark Shinwell 8054e4f819 Add configure option to not install ".byte" executables (#1776)
In environments where the executables compiled to native code,
such as ocamlopt.opt, are always used in preference to the bytecode
versions then space can be saved by not installing the latter.
This patch provides a configure option to do such. It is relatively lightly
engineered; in particular, it won't complain if the native code executables
aren't themselves being built; but given this is an option for knowledgeable
users we think that it is reasonable.
2018-05-14 10:44:01 +02:00
Mark Shinwell ea2d6a1e31
Add configure options to control installation of source artifacts (#1777) 2018-05-14 08:15:44 +01:00
Pierre Chambart 0a42259060 Turn flambda invariants checks off by default (#1686) 2018-04-06 09:49:57 +01:00
Gabriel Scherer 682aceb2a4 Revert "make string_of_float and float_of_string locale-independent (#1185)"
This reverts commit b0181bf8ba.

The revert comes from the fact that it breaks the build on OSX, see

  https://github.com/ocaml/ocaml/pull/1185#issuecomment-377098168
2018-03-29 07:09:09 +02:00
ygrek b0181bf8ba make string_of_float and float_of_string locale-independent (#1185)
notes:

* ifdef fest for MSVC
https://docs.microsoft.com/en-us/cpp/c-runtime-library/locale

* avoid duplocale due to different semantics on BSD
https://www.freebsd.org/cgi/man.cgi?query=newlocale&sektion=3

* mingw links against old msvcrt and doesn't have _create_locale
2018-03-28 16:33:09 +02:00
David Allsopp f0ac94d0c3 Enhance X11 detection logic (#1584) 2018-03-15 11:13:23 +00:00
David Allsopp 4d79045d95 Use gawk on Windows in the build system
awk is symbolic link in Cygwin, which means it can't be used in -pp for
a native Windows build. Just use gawk instead, as no other package
provides the awk command on Cygwin.
2018-02-12 08:29:16 +00:00
Xavier Leroy e71f1021b8
ARM 32-bit port: add support for ARMv8 in 32-bit mode, a.k.a. AArch32 (#1486)
For ARMv8/AArch32, avoid ITE conditional instruction blocks and use
simpler IT blocks instead.
2017-12-28 19:21:50 +01:00
Gabriel Scherer dc3086f92c configure: build the debug and instrumented runtimes by default (#1526)
This commit builds the debug and instrumented runtimes by default.

For a user that discovers a use for either of those, not having built
by default makes the experience pretty bad: they have to recompile
their own OCaml compiler, possibly from a source checkout if the
option is not available on opam...

With this change the total compilation time only increased by
7 seconds on my machine, from 3m24s to 3m33s -- these are sequential
builds, with parallel builds the difference is lost in the noise.

We wish to make -with-instrumented-runtime the default, but not break
the build on systems that do not support it -- when clock_gettime is
missing. This is done by tracking whether -with-instrumented-runtime
was set explicitly or is the default value; in the latter case,
a missing clock_gettime defaults to no instrumented runtime, without
raising an error at configure-time.
2017-12-15 10:03:24 +01:00
Andrey Bergman 0892f934e6 Replace non-existent with_spacetime_call_counts with enable_call_counts in configure. 2017-12-03 16:02:46 -06:00
Andrey Bergman db89791565 Remove unused curseslibs in configure. 2017-12-03 16:02:36 -06:00
Andrey Bergman 75269642cc Remove unused dllccompopt from configure. 2017-12-03 16:02:26 -06:00
Andrey Bergman 91f4dcab85 Remove unused x11_libs from configure. 2017-12-03 16:02:11 -06:00
Xavier Leroy 13785c9276
MPR#7679: make sure `.a` files are erased before calling `ar rc` (#1494)
Otherwise leftover .a files from an earlier compilation may contain
unwanted modules, as shown in MPR#7679.

However, ocamlmklib always erases the destination .a file before
calling the `mkdll` function defined in `#ml` blocks of the
configuration makefile.  Hence there is no need for a `rm` (or `del`)
shell command in `mklib`.

Finally, in the config/Makefile.mingw* files, we can safely assume
"ar" supports the "s" option because this is "ar" from the GNU
binutils, so no need to call ranlib.
2017-11-30 11:25:17 +01:00
Xavier Leroy 852b595ff3
Remove dependencies on curses/terminfo/termcap C library (#1431)
The terminfo C library was used for displaying error messages from the
toplevel.  Instead, just use ANSI escape sequences to display, and a
ioctl() to get the number of lines of the terminal.

- Remove byterun/terminfo.c
- Add primitive to query number of lines to io.c
  with OS-dependent code in unix.c (ioctl-based implementation)
  and win32.c (no implementation yet)
- Add a Terminfo.num_lines function and simplify interface to Terminfo.setup
- Query num_lines every time an error message needs to be highlighted,
  so as to react to windows resizing.
- Bootstrap to enable removal of old primitives.
2017-11-26 15:49:31 +01:00
he32 df44fa572a Fix NetBSD/powerpc to build and work (#1409) 2017-10-20 12:45:04 +01:00
Leo White 6d3a8b904e Merge pull request #1421 from lpw25/call-counts-by-default
Enable call counts in spacetime by default
2017-10-17 13:42:00 +01:00
Leo White 8f6c6aca92 Enable call counts in spacetime by default 2017-10-12 16:52:09 +01:00
Xavier Leroy 970eebe4be MPR#7640: reimplementation of Unix.execvpe (#1414)
Use the system-provided execvpe() if possible.  Otherwise, use
a serious reimplementation written in OCaml and patterned after
the Glibc execvpe() implementation.

Added a test in tests/lib-unix/unix-execvpe.

Don't test Unix.execvpe if we are using the system-provided implementation.
The execvpe() functions provided by Win32 and Cygwin aren't quite to
our specs.  At any rate, the test is there to find bugs in our
implementation of execvpe(), not in others's.
2017-10-10 14:12:19 +02:00