dev-libs/libx86emu: Port to EAPI 7

Closes: https://bugs.gentoo.org/684466
Closes: https://bugs.gentoo.org/706558
Package-Manager: Portage-2.3.88, Repoman-2.3.20
Signed-off-by: David Seifert <soap@gentoo.org>
This commit is contained in:
David Seifert
2020-02-10 00:05:10 +01:00
parent 46cef3eb33
commit d332eb4739
3 changed files with 104 additions and 19 deletions

View File

@@ -0,0 +1,82 @@
--- a/Makefile
+++ b/Makefile
@@ -1,15 +1,4 @@
-ARCH := $(shell uname -m)
-ifneq ($(filter i386 i486 i586 i686, $(ARCH)),)
-ARCH := i386
-endif
-
-CC = gcc
-CFLAGS = -g -O2 -fPIC -fomit-frame-pointer -Wall
-ifneq ($(filter x86_64, $(ARCH)),)
-LIBDIR = /usr/lib64
-else
-LIBDIR = /usr/lib
-endif
+CFLAGS += -fPIC -Wall
LIBX86 = libx86emu
VERSION := $(shell cat VERSION)
@@ -24,9 +13,6 @@
.PHONY: all shared install test clean
-%.o: %.c
- $(CC) -c $(CFLAGS) $<
-
all: shared
shared: $(LIB_NAME)
@@ -38,13 +24,15 @@
install -m 644 -D include/x86emu.h $(DESTDIR)/usr/include/x86emu.h
$(LIB_NAME): .depend $(OBJS)
- $(CC) -shared -Wl,-soname,$(LIB_SONAME) $(OBJS) -o $(LIB_NAME)
+ $(CC) $(LDFLAGS) -shared -Wl,-soname,$(LIB_SONAME) $(OBJS) -o $(LIB_NAME)
+ ln -snf $(LIB_NAME) $(LIB_SONAME)
+ ln -snf $(LIB_SONAME) $(LIBX86).so
-test:
- make -C test
+check:
+ $(MAKE) -C test
clean:
- make -C test clean
+ $(MAKE) -C test clean
rm -f *.o *~ include/*~ *.so.* .depend
ifneq "$(MAKECMDGOALS)" "clean"
--- a/test/Makefile
+++ b/test/Makefile
@@ -1,9 +1,10 @@
-CC = gcc
-CFLAGS = -g -Wall -fomit-frame-pointer -O2
+CFLAGS += -fPIC -Wall
+CPPFLAGS += -I../include
TST_FILES = $(wildcard *.tst)
INIT_FILES = $(addsuffix .init,$(basename $(wildcard *.tst)))
RES_FILES = $(addsuffix .result,$(basename $(wildcard *.tst)))
TEST_OPTS = --verbose --show code,regs,data,acc,io,ints,attr,time
+LDLIBS = -L.. -lx86emu
.PHONY: all test clean
.SECONDARY: $(INIT_FILES)
@@ -12,13 +13,12 @@
all: x86test
@./prepare_test *.tst
- @./x86test $(TEST_OPTS) *.init
+ @LD_LIBRARY_PATH=.. ./x86test $(TEST_OPTS) *.init
-x86test: x86test.c
- $(CC) $(CFLAGS) $< -lx86emu -o $@
+x86test: x86test.o
-%.result: %.init
- @./x86test $(TEST_OPTS) $<
+%.result: %.init x86test
+ @LD_LIBRARY_PATH=.. ./x86test $(TEST_OPTS) $<
%.init: %.tst
@./prepare_test $<

View File

@@ -0,0 +1,13 @@
--- a/include/ops.h
+++ b/include/ops.h
@@ -39,8 +39,8 @@
#ifndef __X86EMU_OPS_H
#define __X86EMU_OPS_H
-void (*x86emu_optab[0x100])(u8 op1) L_SYM;
-void (*x86emu_optab2[0x100])(u8 op2) L_SYM;
+extern void (*x86emu_optab[0x100])(u8 op1) L_SYM;
+extern void (*x86emu_optab2[0x100])(u8 op2) L_SYM;
void decode_cond(int type) L_SYM;

View File

@@ -1,9 +1,9 @@
# Copyright 1999-2017 Gentoo Foundation
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=4
EAPI=7
inherit multilib rpm toolchain-funcs
inherit rpm toolchain-funcs
DESCRIPTION="A library for emulating x86"
HOMEPAGE="https://www.opensuse.org/"
@@ -12,24 +12,14 @@ SRC_URI="https://download.opensuse.org/source/factory/repo/oss/suse/src/${P}-9.8
LICENSE="HPND"
SLOT="0"
KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
IUSE=""
src_prepare() {
sed -i \
-e 's:$(CC) -shared:& $(LDFLAGS):' \
Makefile || die
}
PATCHES=(
"${FILESDIR}"/${PN}-1.1-fix-makefile.patch
"${FILESDIR}"/${PN}-1.1-gcc10-fno-common.patch
)
src_compile() {
emake CC="$(tc-getCC)" CFLAGS="${CFLAGS} -fPIC -Wall"
}
src_test() {
ln -sf libx86emu.so.1.1 libx86emu.so || die
ln -sf libx86emu.so.1.1 libx86emu.so.1 || die
emake \
CC="$(tc-getCC)" \
CFLAGS="${CFLAGS} ${LDFLAGS} -Wl,-rpath,${S} -fPIC -Wall -I../include/ -L../" test
src_configure() {
tc-export CC
}
src_install() {