NetBSD/external/lgpl3/gmp
christos 5f34f68b67 fix lint build on vax 2022-05-31 17:52:35 +00:00
..
dist fix lint build on vax 2022-05-31 17:52:35 +00:00
lib/libgmp libgmp: remove trailing whitespace 2021-12-07 19:14:05 +00:00
Makefile.arch Teach native gmp about aarch64eb 2020-09-02 15:15:30 +00:00
Makefile.netbsd-gmp update slightly to enable 'native-gmp' target from tools/gmp to work. 2020-09-26 20:58:48 +00:00
README regen for GMP 6.2.1 and i386 and arm64. update docs so i don't forget 2021-07-12 07:59:51 +00:00
build-gmp-Makefile.inc.awk update slightly to enable 'native-gmp' target from tools/gmp to work. 2020-09-26 20:58:48 +00:00

README

$NetBSD: README,v 1.9 2021/07/12 07:59:51 mrg Exp $

GMP in NetBSD.  We need GMP for GCC >= 4.2.


Building GMP without configure - how to port GMP build to a new platform.

The GMP build doesn't map very well to normal make.  The ./configure phase
creates a bunch of symlinks and weeds out the sources lists, and there are
files with the same name in different subdirectories linked into the same
final product.  All of these issues need to be dealt with.

There is a mostly-working "mknative" for GMP now.  If this fails, see the
section below for the old instructions.

	- run a "./build tools libs", possibly setting MKGCC=no if the
	  GMP port is currently not working at all.

	- cd to tools/gmp, and run $TOOLDIR/bin/nbmake-$arch native-gmp

	- if that works, commit the files it changed in the source tree.

	- set NEWCONFIGDIR=/writeable/src if eg /usr/src is read-only.

These are the old steps, that maybe are necessary to fix the automated
output:

	- run ./configure, save the output.  you can use the makefile
	  "Makefile.netbsd-gmp" in this directory to run this with the
	  right options, etc.  run it with nbmake-$MACHINE.

	- create src/external/gpl3/gmp/lib/libgmp/arch/${MACHINE_ARCH} dir,
	  and copy these files into it:
		config.h
		config.m4
		gmp-mparam.h
		gmp.h

	  some of these files might have src/obj references.  in particular
	  fix GMP_MPARAM_H_SUGGEST to start from ./mpn/... and make sure
	  we #define __GMP_CC to just "gcc", and make sure that
	  CONFIG_TOP_SRCDIR is not defined in config.m4

	  the "Makefile.netbsd-gmp" has a "copy-files" target that performs
	  these tasks.

	- parse the ./configure output and note all created symlinks
	  for mpn.  these need to be converted into a new Makefile.inc.
	  there is a script in this subdir build-gmp-Makefile.inc.awk
	  that can be used to do this.  it should just work to generate
	  the first section of Makefile.inc if fed the entire configure
	  output.

	  assembler files generally want -DOPERATION_${foo} defined for
	  each way they are compiled or pre-processed.  the pre-processor
	  used is m4 to parse, and we and create .s files from the .asm
	  files that we then we feed into $CC.

	  this part needs to be automated, but requires that the first
	  part's ./configure output be stored for it.  this is not done.

	  it would be good to convert the Makefile.inc into a pair of
	  files -- srcs.mk generated from build-gmp-Makefile.inc.awk, and
	  the remaining static part of the Makefile.inc left with the
	  include of srcs.mk.

The amd64 port is a good reference to compare.


mrg@netbsd.org
- 2021/07/11