minix/lib/generateasm.mk
Ben Gras 4b999f1962 build shared versions of libraries
building defaults to off until clang is updated.

current clang does not handle -shared, necessary to change the ld
invocation to build shared libraries properly. a new clang should be
installed and MKPIC defaults to no unless the newer clang is detected.

changes:

	. mainly small imports of a Makefile or two and small fixes
	  (turning things back on that were turned off in Makefiles)
	. e.g.: dynamic librefuse now depends on dynamic
	  libpuffs, so libpuffs has to be built dynamically too
	  and a make dependency barrier is needed in lib/Makefile
	. all library objects now have a PIC (for .so) and non-PIC
	  version, so everything is built twice.
	. generate PIC versions of the compat (un-RENAMEd) jump files,
	  include function type annotation in generated assembly
	. build progs with -static by default for now
	. also build ld.elf_so
	. also import NetBSD ldd
2012-04-16 05:21:20 +02:00

21 lines
636 B
Makefile

${ASM}:
${_MKTARGET_CREATE}
printf '/* MINIX3 */ \n\
/* \n\
* Compatibility jump table for renamed symbols. \n\
* \n\
* DO NOT EDIT: this file is automatically generated. \n\
*/ \n\
#include <machine/asm.h> \n\
.global ${.PREFIX:S/^compat__//:C/([0-9]{2})$//}; \n\
.global ${.PREFIX:S/^compat//}; \n\
.type ${.PREFIX:S/^compat__//:C/([0-9]{2})$//},@function \n\
${.PREFIX:S/^compat__//:C/([0-9]{2})$//}: \n\
#ifdef PIC \n\
jmpl *PIC_PLT(${.PREFIX:S/^compat//}) \n\
#else \n\
jmp ${.PREFIX:S/^compat//} \n\
#endif \n\
\n ' >${.TARGET}