Restore environment from parent for external processes

This commit is contained in:
Pablo Marcos Oltra 2018-01-11 13:17:08 +01:00
parent 5f97d55211
commit 6059df77c3
7 changed files with 280 additions and 292 deletions

View file

@ -2,20 +2,37 @@ CFLAGS ?= -O2 -Wall -Wextra
LDFLAGS += -s
BIN = AppRun_patched
LIB = exec.so
EXEC_TEST = exec_test
ENV_TEST = env_test
checkrt: $(BIN) $(LIB)
all: $(BIN) $(LIB)
test: $(EXEC_TEST) $(ENV_TEST)
all: checkrt test
clean:
-rm -f $(BIN) $(LIB) *.o AppRun.c AppRun_patched.c
-rm -f $(BIN) $(LIB) $(EXEC_TEST) $(ENV_TEST) *.o AppRun.c AppRun_patched.c
$(BIN): AppRun_patched.o checkrt.o
$(BIN): AppRun_patched.o checkrt.o env.o
$(LIB): exec.o
$(LIB): exec.o env.o
$(CC) -shared $(LDFLAGS) -o $@ $^ -ldl
AppRun_patched.o checkrt.o: CFLAGS += -include checkrt.h
exec.o: CFLAGS += -fPIC -std=c99
exec.o env.o: CFLAGS += -fPIC
$(EXEC_TEST): CFLAGS += -DEXEC_TEST
$(EXEC_TEST): exec.c env.c
$(CC) -o $@ $(CFLAGS) $^ -ldl
$(ENV_TEST): CFLAGS += -DENV_TEST
$(ENV_TEST): env.c
$(CC) -o $@ $(CFLAGS) $^
run_tests: $(EXEC_TEST) $(ENV_TEST)
./$(ENV_TEST)
./$(EXEC_TEST)
AppRun_patched.c: AppRun.c
patch -p1 --output $@ < AppRun.c.patch
@ -23,3 +40,4 @@ AppRun_patched.c: AppRun.c
AppRun.c:
wget -c "https://raw.githubusercontent.com/AppImage/AppImageKit/appimagetool/master/src/AppRun.c"
.PHONY: checkrt test run_tests all clean