Commit graph

28 commits

Author SHA1 Message Date
Gleefre 562a1a329a Add android build system (crosscompiling with NDK)
Uses NDK as C crosscompiler and ADB to run code on the target device.
Uses both :linux and :android features (android is almost a linux).

It also reserves a folder android-libs/ for putting precompiled
libraries to link agains (for example zstd for core compression).

See doc/internals-notes/Android-build.txt for more details
2023-04-21 15:08:19 -04:00
Stas Boukarev a91d09bae4 Work around a gnu make bug. 2023-01-16 03:14:42 +03:00
Douglas Katzman 0f588589c9 Remove recipe for after-grovel-headers
First added in rev ded744f7 for ppc-darwin hack (ca 2004).
Then used in rev 3d2165e6 for x86-darwin hack (ca 2006).
Removed from both in rev a41c057b and never used for anything ever again.

Also delete leftovers related to running 'nm'
2022-03-17 13:27:19 -04:00
Christophe Rhodes 85eb6338ce Relocate special-case for stuff-groveled-from-headers.lisp
Set its atime/mtime from grovel-headers.c in the filesystem, rather
than indirecting in the compiler.
2022-03-16 13:46:01 +00:00
Douglas Katzman 633de0ca28 Remove obsolete :linkage-table from make-config
:LINKAGE-TABLE wasn't present in *FEATURES* since rev 5efa93883f, so users
can't have been testing for it for quite some time.

LOAD-COLD-FOREIGN-SYMBOL-TABLE simply does not exist any more.

And 'sbcl.nm' ceased being produced in rev cf6a01774b.
2021-04-20 12:06:55 -04:00
Douglas Katzman 19e6e711f7 Remove obsolete comment
The 'readonlyspace hack' seems to have gone away in a41c057bfe.
So any reason for doing a "make clean" has to be justified some
other way, like it's generally a good idea, maybe?
2020-09-02 13:13:32 -04:00
Douglas Katzman 885d936c89 Obliterate :sb-dynamic-core feature
There is literally no difference between it and :linkage-table now.
2020-03-07 14:58:51 -05:00
Douglas Katzman bbb6ac4ad0 Cease generating ldso-stubs except as needed
And stop copying it in the build scripts, ignoring it in .gitignore,
and removing it in clean.sh
2020-03-06 16:32:46 -05:00
Stas Boukarev 285ee63e88 Make the build process abortable.
Wrap everything with an abort restart which will quit and stop make.sh
from proceeding.

Also remove --disable-debugger from the default sbcl options for
better debugging.
2016-10-04 22:17:34 +03:00
Stas Boukarev 6734abc6a0 make-target-1.sh: pass $SBCL_MAKE_JOBS to make. 2015-11-02 04:06:22 +03:00
Christophe Rhodes eccba2ae33 support target-driven cross-compilation
Running ./make-config.sh --host-location="host:path/to/sbcl" on the
target causes the make-target-N.sh scripts to do all the copying of
files to and from the host using rsync on the target to the specified
host location.

Because this is rsync, managing the reverse ssh to do this on
heavily-firewalled targets is not straightforward; we might have to
extend the syntax, or have an extra --host-port argument.  But this
should I think make the port to arm64 more straightforward.
2014-05-11 07:59:01 +01:00
David Lichteblau f057566fe9 Extend use of the linkage table to static symbols
- Formerly static symbols are static no more:

  - Always use the linkage table, even in cross compilation.  The
    runtime retrieves the resulting list of foreign symbols and installs
    linkage table entries before calling into Lisp for the first time.

  - Simplify/remove various win32 foreign symbol special cases.

  - Almost remove scratch().

Conditional on feature SB-DYNAMIC-CORE; required on Windows and optional
on other platforms supporting the linkage table.

With this feature, changes to src/runtime can be built using make,
without requiring a slam.sh step to update core files.

For LINKAGE-TABLE platforms only.  Currently supported on x86 and
x86-64.  (PowerPC does not yet work.)  In the interest of simplicity,
disable this feature permanently on non-SB-THREAD platforms, because
these would require unpleasant changes to allocation macros.

Thanks to Anton Kovalenko.
2012-11-02 20:43:05 +01:00
Alastair Bridgewater 7d407220e1 Clean up build process for cross-compiled targets.
* Over time, the process for producing an SBCL build for another
target architecture or OS has become more difficult and less
documented.

  * Move all make.sh argument processing to make-config.sh.

  * Have make-config.sh produce a file, output/build-config,
containing shell commands to set up important build parameters
such as where to find GNUMAKE, what SBCL_XC_HOST is, and so on.

  * Source output/build-config in most of the make*.sh scripts.

  * The practical upshot of all this is that a cross-compile
build is now a matter of alternating between target and host,
calling make-config.sh, make-host-1.sh, make-target-1.sh,
make-host-2.sh, make-target-2.sh, and following up with a
make-target-contrib.sh on the target, and you wind up with a
usable product.  And, as make-config.sh does all of the arg
parsing, you can pass --xc-host= or --dynamic-space-size= or
whatever and it all works out.
2011-10-22 17:10:38 -04:00
Christophe Rhodes 04d819bb1a 0.9.8.27:
Merge patch from James Bielman fixing self-build under Win32.
	... a little bit of an accident ensued; I ran
		canonicalize-whitespace on .sh files, which seemed to
		work (except on wc.sh) until it scribbled all over
		make.sh, confusing the shell interpreter utterly.
	... the resulting files have built the system, nevertheless.
2006-01-09 13:00:17 +00:00
Thiemo Seufer babd45f778 0.9.4.72:
Robustify the build system scripts.
2005-09-16 13:26:39 +00:00
Christophe Rhodes 3273f8edb6 0.9.0.26:
More build fixes
	... for our non-8859-1 friends, explicitly request the C locale
		while building.
	... running the tests (and indeed starting up the new sbcl)
		in unknown locales will fail instantly, but that's probably
		less annoying than having the build fail at cold-init time.
	... probably stdin/out/err should fall back to ascii external format
		if all else fails
2005-05-08 15:55:06 +00:00
William Harold Newman eb5265ab22 0.8.14.9:
fixes for build on my old Debian system...
	...added missing #!+LINKAGE-TABLE
	...converted "cd foo" to "cd ./foo" so that CDPATH-based logic
		won't helpfully announce the name of the new dir to
 		stdout (and thus into local-target-features.lisp-expr);
		then "cd ./foo > /dev/null" for overkill
	generally grepped for and changed "cd foo" to "cd ./foo" to
		reduce the amount of CDPATH ambiguity involved and
		the amount of stdout noise generated
2004-09-10 15:36:17 +00:00
Christophe Rhodes 93b8975500 0.8.8.4:
Restore cross-compilability, by making ldso-stubs.S in host-1
2004-02-27 09:41:37 +00:00
Christophe Rhodes fab1ba8d4e 0.8.8.2:
Merge build patch ("building SBCL with Sun toolchain" Nikodemus
	Siivola sbcl-devel 2004-02-05)
	... add some assertions to ldso-stubs.lisp
	... fix the conditional around dlopen()
	... delete ~% pasteo from sparc-funcdef.sh
2004-02-26 08:36:22 +00:00
William Harold Newman ded744f74a 0.8.7.57:
merged Brian Mastenbrook's "SBCL-on-Darwin state" patch
		(sbcl-devel 2004-02-18)
2004-02-20 18:15:10 +00:00
Christophe Rhodes 4ed3f0d08c 0.8.5.29:
Completely boring housekeeping commit
	... rename grovel_headers.c to grovel-headers.c, as that underscore
		was the only non-logical-pathname-compliant character in
		the whole of the source and objects filenames.
	... delete all redundant sb!vm: prefixes throughout
		src/compiler/$arch/*.lisp
	... nothing interesting at all, in fact.  Builds and passes tests
		on at least x86 and sparc.
2003-11-10 23:26:37 +00:00
Christophe Rhodes 7ff9e3f7f0 0.8.2.12:
More PPC/Linux and x86/BSD fixes
	... try to get recursive includes right;
	... just include target-os.h, which itself includes target-arch-os.h
		(thanks to Gerd Moellmann)
	... comment out attempt number two at ppc/linux floating point, which
		is causing problems on some ppcs (as reported by Eric
		Marsden sbcl-devel 2003-08-01 and kmr on #lisp from the
		Debian buildds... I wonder why this doesn't happen on
		Daniel's iMac)
2003-08-01 17:16:56 +00:00
Christophe Rhodes df679ed627 0.8alpha.0.32:
Improvements in build technology:
	... detect and choose GNUMAKE earlier, once and only once.
	... provide recompile and use-anyway restarts for warm load.
2003-05-16 11:37:09 +00:00
William Harold Newman fbbf545a49 0.pre8.53:
s/make-compound-type-or-something/make-probably-compound-type/
		(as per cliini and dan_b suggestion on #lisp IRC)
	merged David Lichteblau patch to make "which gmake" more robust
		in different sh's (sbcl-devel 2003-04-07)
2003-04-09 22:33:23 +00:00
William Harold Newman 8494caf7ad 0.7.11.4:
Try harder to find GNU make (instead of first running
		make-host-1.sh, then bailing out in make-target-1.sh)
		as per Fufie, rudi, and Krystof on #lisp. (Google says
		"don't be evil", and while we're not that good, at
		least we can try not to be too annoying.:-)
	Make chill.lisp not die on short package names. (inspired by
		Rudi Schlatte's patch sbcl-devel 2003-01-04)
2003-01-04 15:51:02 +00:00
William Harold Newman d7f6139a91 0.6.12.7.flaky1:
(This system state is seriously screwed up. It did build,
		both on Linux and on OpenBSD, but signalled an
		error after writing out sbcl.core on OpenBSD, and
		although it runs a little both on Linux and on
		OpenBSD, it hangs in the regression tests. It
		also has some temporary hacks marked REMOVEME,
		including one which suppresses PURIFY when
		building the system (!).)
	made the system build on OpenBSD again..
	..stubbed stuff out as a quick fix to the problem of FFI to
		64-bit stat.st_size
	tried to make the system run on OpenBSD again..
	..initialized current_dynamic_space, since it's now used
		instead of DYNAMIC_SPACE_START in PURIFY
	..added new assertions about GENCGC alloc_region stuff being
		reset when it should be
	renamed Lisp-level struct stat stuff to struct wrapped_stat
	tried to tidy up Lisp-level stat stuff; removed mysterious
		(STRING= NAME "") behavior from UNIX-STAT
	added slam.sh to help in low-level compile-and-try cycle
	pulled alloc_region-is-reset logic out into separate
		functions, and added more assertions on it (hunting
		for a bug which broke the old assertions)
	renamed gc_alloc_large to gc_alloc_possibly_large, and
		gc_quick_alloc_large_unboxed to
		gc_quick_alloc_unboxed_possibly_large
	enabled various GC checks, e.g. gencgc_zero_check=1
	deleted unused (and bizarre..) gencgc_verify_zero_fill()
	turned off PURIFY in order to get the system to build, since
		PURIFY seems to be misbehaving (leaving INIT-FUNCTION
		above the cutoff address..)
2001-05-15 14:08:31 +00:00
William Harold Newman 4cf50b1896 0.6.12.4:
made grovel-headers.c run automatically as part of the build
		process (so that the automatically-generated file
		output/stuff-groveled-from-headers.lisp replaced the
		old symlink src/code/target-os-types.lisp)
	redid grovel_headers.c DEFCONSTANT macro as function
	removed 'ln -sf $sbcl_arch-linux-types.lisp' stuff (from
		src/runtime/make-config.sh??)
	redid the definition of a stem in stems-and-flags.lisp,
		as a relative path from SBCL base directory instead
		of from the src/ subdirectory, so that it can now
		refer to "output/stuff-groveled-from-headers.lisp
2001-05-08 00:13:54 +00:00
William Harold Newman a530bbe337 Initial revision 2000-09-18 01:26:16 +00:00