diff --git a/2001/anonymous/.gitignore b/2001/anonymous/.gitignore index 28f278ffa..f596565bd 100644 --- a/2001/anonymous/.gitignore +++ b/2001/anonymous/.gitignore @@ -5,3 +5,4 @@ ten.bak.od ten.bak.txt ten.od ten.txt +anonymous.ten.64 diff --git a/2001/anonymous/Makefile b/2001/anonymous/Makefile index 0930f1df6..7937aa85f 100644 --- a/2001/anonymous/Makefile +++ b/2001/anonymous/Makefile @@ -117,10 +117,10 @@ PROG= ${ENTRY} # OBJ= ${PROG}.o DATA= -TARGET= ${PROG} ${PROG}.ten +TARGET= ${PROG} ${PROG}.ten ${PROG}.ten.64 # -ALT_OBJ= -ALT_TARGET= +ALT_OBJ= ${PROG}.ten.64.o +ALT_TARGET= ${PROG}.ten.64 ################# @@ -156,6 +156,11 @@ ${PROG}.ten: ${PROG}.ten.c @echo ${CC} ${CFLAGS} -m32 $< -o $@ ${LIBS} +${PROG}.ten.64: ${PROG}.ten.c + @echo "WARNING: the file created by this rule will NOT work with the entry itself;" + @echo "this is because it works ONLY on 32-bit ELF binaries! This however at least" + @echo "lets you see the supplementary program in action." + ${CC} ${CFLAGS} $< -o $@ ${LIBS} # alternative executable # diff --git a/2001/anonymous/README.md b/2001/anonymous/README.md index 7cb07ec00..8095eebd6 100644 --- a/2001/anonymous/README.md +++ b/2001/anonymous/README.md @@ -82,6 +82,8 @@ What happens if you try it on another file like [anonymous.c](anonymous.c)? Can you recompile it okay? What if you run it on `anonymous` itself? Can you run the program successfully after it without recompiling? +NOTE: if the 32-bit version cannot be compiled the script will at least run the +alternate version of the [anonymous.ten](anonymous.ten.c) program. ## Judges' remarks: diff --git a/2001/anonymous/try.me.sh b/2001/anonymous/try.me.sh index 36f6f7ff3..fc509fca7 100755 --- a/2001/anonymous/try.me.sh +++ b/2001/anonymous/try.me.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -make clobber all >/dev/null 2>&1 +make clobber alt all >/dev/null 2>&1 TARGET="anonymous.ten" @@ -27,5 +27,8 @@ if [[ -f "$TARGET" ]]; then diff -s ten.txt ten.bak.txt else echo "cannot compile anonymous.ten.c as 32-bit, sorry." - exit 1 + echo "will run 64-bit version directly." + sleep 3 + echo "$ ./$TARGET.64" + ./"$TARGET".64 fi