Add alt supplementary program to 2001/anonymous
Running make alt will compile the anonymous.ten.c without specifying -m32: whether it'll end up being 64-bit or not would depend on the system but it'll be saved as anonymous.ten.64 anyway. The try.me.sh script will run this program directly, skipping the entry itself, if the anonymous.ten.c cannot be compiled as a 32-bit binary. Updated .gitignore.
This commit is contained in:
1 parent
cfdbd0fef7
commit
d47b9d50ef
4 files changed
+16
-5
No files matched your search
@@ -5,3 +5,4 @@ ten.bak.od
|
||||
ten.bak.txt
|
||||
ten.od
|
||||
ten.txt
|
||||
anonymous.ten.64
|
||||
@@ -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
|
||||
#
|
||||
|
||||
@@ -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:
|
||||
|
||||
|
||||
@@ -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
|
||||
Reference in new issue
Block a user