Provide option to have APE not modify itself
This change introduces ape-no-modify-self.o to the amalgamated release binaries, which may be used as an alternative to ape.o to make it easier to use APE in cases where the self-modifying behavior isn't acceptable. Please note that this alternative copying behavior isn't necessarily better. It introduces a whole bunch of questions of its own, which are documented in the ape.S source comment and should be considered by both the program author as well as the end-user of programs linked this way. For example, build environments that use read-only file systems and would prefer to not have a launcher wrapper (like we use in our build) can use ape-no-modify-self.o instead of ape.o and then set the $TMPDIR environment variable to point to a sane read-write-exec location. Fixes #146 See #82
This commit is contained in:
@ -46,5 +46,10 @@ o/ape/idata.inc: \
|
||||
$(APE_OBJS): $(BUILD_FILES) \
|
||||
ape/ape.mk
|
||||
|
||||
o/$(MODE)/ape/ape-no-modify-self.o: ape/ape.S
|
||||
@$(COMPILE) -AOBJECTIFY.S $(OBJECTIFY.S) $(OUTPUT_OPTION) -DAPE_NO_MODIFY_SELF $<
|
||||
|
||||
.PHONY: o/$(MODE)/ape
|
||||
o/$(MODE)/ape: $(APE) $(APE_CHECKS)
|
||||
o/$(MODE)/ape: $(APE) \
|
||||
$(APE_CHECKS) \
|
||||
o/$(MODE)/ape/ape-no-modify-self.o
|
||||
|
||||
Reference in New Issue
Block a user