diff options
author | midipix <writeonce@midipix.org> | 2017-10-25 01:33:27 -0400 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2017-10-25 01:38:21 -0400 |
commit | e2bf2b260b64b0e20ba956f556f908b611e4b105 (patch) | |
tree | 3dd570dff70a4e97d24f57b53fdcb50cfdcced8e /sysinfo | |
parent | 640057f08a03b04a7e0dcfb5315c9fa7209018e3 (diff) | |
download | sofort-e2bf2b260b64b0e20ba956f556f908b611e4b105.tar.bz2 sofort-e2bf2b260b64b0e20ba956f556f908b611e4b105.tar.xz |
build system: PE targets: added mdso-based import library generation support.
Diffstat (limited to 'sysinfo')
-rw-r--r-- | sysinfo/os/cygwin.mk | 1 | ||||
-rw-r--r-- | sysinfo/os/midipix.mk | 1 | ||||
-rw-r--r-- | sysinfo/os/mingw.mk | 1 | ||||
-rw-r--r-- | sysinfo/os/msys.mk | 1 | ||||
-rw-r--r-- | sysinfo/os/pe.mk | 27 | ||||
-rw-r--r-- | sysinfo/toolchain/binutils.mk | 1 | ||||
-rw-r--r-- | sysinfo/toolchain/llvm.mk | 1 |
7 files changed, 30 insertions, 3 deletions
diff --git a/sysinfo/os/cygwin.mk b/sysinfo/os/cygwin.mk index a257b88..21cb1a1 100644 --- a/sysinfo/os/cygwin.mk +++ b/sysinfo/os/cygwin.mk @@ -8,5 +8,6 @@ OS_LIBDEF_EXT = .def OS_ARCHIVE_EXT = .a OS_SONAME = copy OS_BINFMT = PE +OS_IMPLIB_TOOL = dlltool CFLAGS_PIC = diff --git a/sysinfo/os/midipix.mk b/sysinfo/os/midipix.mk index 96c178c..b2d7096 100644 --- a/sysinfo/os/midipix.mk +++ b/sysinfo/os/midipix.mk @@ -8,3 +8,4 @@ OS_LIBDEF_EXT = .so.def OS_ARCHIVE_EXT = .a OS_SONAME = symlink OS_BINFMT = PE +OS_IMPLIB_TOOL = mdso diff --git a/sysinfo/os/mingw.mk b/sysinfo/os/mingw.mk index c13e61d..53fe2d6 100644 --- a/sysinfo/os/mingw.mk +++ b/sysinfo/os/mingw.mk @@ -8,6 +8,7 @@ OS_LIBDEF_EXT = .def OS_ARCHIVE_EXT = .a OS_SONAME = copy OS_BINFMT = PE +OS_IMPLIB_TOOL = dlltool CFLAGS_PIC = CFLAGS_OS += -U__STRICT_ANSI__ diff --git a/sysinfo/os/msys.mk b/sysinfo/os/msys.mk index b70cc78..27482e0 100644 --- a/sysinfo/os/msys.mk +++ b/sysinfo/os/msys.mk @@ -8,6 +8,7 @@ OS_LIBDEF_EXT = .def OS_ARCHIVE_EXT = .a OS_SONAME = copy OS_BINFMT = PE +OS_IMPLIB_TOOL = dlltool CFLAGS_PIC = CFLAGS_OS += -U__STRICT_ANSI__ diff --git a/sysinfo/os/pe.mk b/sysinfo/os/pe.mk index bbb74b2..1b02484 100644 --- a/sysinfo/os/pe.mk +++ b/sysinfo/os/pe.mk @@ -19,9 +19,6 @@ implib-solink: shared-lib $(IMPLIB_SOLINK) $(IMPLIB_DEF): shared-lib -$(IMPLIB_VER): $(IMPLIB_DEF) - $(DLLTOOL) -l $(IMPLIB_VER) -d $(IMPLIB_DEF) -D $(DSO_VER) - install-implib: install-implib-ver \ package-install-implib-soname \ package-install-implib-solink @@ -38,6 +35,20 @@ clean-implib: rm -f $(IMPLIB_SOLINK) +ifeq ($(OS_IMPLIB_TOOL),mdso) + +$(IMPLIB_VER): $(IMPLIB_DEF) + $(MDSO) -m $(HOST_BITS) -i $(IMPLIB_VER) -n $(DSO_VER) $(IMPLIB_DEF) + +else ifeq ($(OS_IMPLIB_TOOL),dlltool) + +$(IMPLIB_VER): $(IMPLIB_DEF) + $(DLLTOOL) -l $(IMPLIB_VER) -d $(IMPLIB_DEF) -D $(DSO_VER) + +endif + + + ifeq ($(AVOID_VERSION),yes) package-implib-soname: @@ -53,9 +64,19 @@ package-install-implib-soname: install-implib-soname package-install-implib-solink: install-implib-solink +ifeq ($(OS_IMPLIB_TOOL),mdso) + +$(IMPLIB_SONAME): $(IMPLIB_DEF) + $(MDSO) -m $(HOST_BITS) -i $(IMPLIB_SONAME) -n $(DSO_SONAME) $(IMPLIB_DEF) + +else ifeq ($(OS_IMPLIB_TOOL),dlltool) + $(IMPLIB_SONAME): $(IMPLIB_DEF) $(DLLTOOL) -l $(IMPLIB_SONAME) -d $(IMPLIB_DEF) -D $(DSO_SONAME) +endif + + $(IMPLIB_SOLINK): $(IMPLIB_SONAME) rm -f $(IMPLIB_SOLINK).tmp ln -s $(IMP_SONAME) $(IMPLIB_SOLINK).tmp diff --git a/sysinfo/toolchain/binutils.mk b/sysinfo/toolchain/binutils.mk index 3232915..728eb66 100644 --- a/sysinfo/toolchain/binutils.mk +++ b/sysinfo/toolchain/binutils.mk @@ -16,3 +16,4 @@ ELFEDIT = $(CROSS_COMPILE)elfedit OBJCOPY = $(CROSS_COMPILE)objcopy READELF = $(CROSS_COMPILE)readelf DLLTOOL = $(CROSS_COMPILE)dlltool +MDSO = $(CROSS_COMPILE)mdso diff --git a/sysinfo/toolchain/llvm.mk b/sysinfo/toolchain/llvm.mk index 65b5396..b863456 100644 --- a/sysinfo/toolchain/llvm.mk +++ b/sysinfo/toolchain/llvm.mk @@ -16,3 +16,4 @@ ELFEDIT = $(CROSS_COMPILE)elfedit OBJCOPY = $(CROSS_COMPILE)objcopy READELF = $(CROSS_COMPILE)readelf DLLTOOL = $(CROSS_COMPILE)dlltool +MDSO = $(CROSS_COMPILE)mdso |