The author stated this directly. It is noted in the bugs.md file and the
README.
I also included a suggested change by Yusuke Endoh. This is not
necessary for compilers that support -Wl,-z,execstack but not all
compilers do (though the only one I've found that has this problem is
macOS which it won't work under anyway just like -m32 won't which we
also now use).
Added the 'more portable' version by the author. This does not compile
at least under 64-bit linux (not macOS either though of course it
wouldn't work in macOS as if you look at the code you see hardcoded
paths for linux ld-linux.so).
I note that there's a de-obfuscated version on the author's page for the
entry which might give some clues. I might look at it in the future but
it appears that unless someone can provide a 64-bit linux version this
will be one of the entries (now far fewer with many fixes made) that
simply no longer work.
This thus completes for now 2001/bellard even with disappointing
circumstances.
This to make the country code consistent with mkiocccentry (and I guess
international standard country codes).
This affects many README.md files and (for one line) winners.csv.
I don't believe I actually need a 32-bit system to test it out so I
might end up trying to fix (more than I already did). I've updated the
bugs.md as the 32-bit requirement seems like it might not be necessary
(if my fix to 2001/anonymous is any indication as with gcc I can use
-m32).
The segfault fix (that prevented it from working at all) that I made a
while back was not actually complete. It should work fine now (famous
last words but it does appear to work now with different values where it
crashed). Some ints were used as pointers (including a function
pointer).
It should be noted again that 2000/bellard itself does not work but
having this program bug fixed will be helpful for anyone who might want
a crack at fixing bellard.c (see bugs.md).
README.md format fixes.
Update bugs.md with a note that the author used gcc 2.95.2 with a link
to the download of that version at the GNU gcc website. This was also
added to the top of the README.md file.
There were many many README.md files with the wrong heading level for
different sections. These have been changed.
To help go through the changes it should be noted I used sgit and also
here is what is changed:
The 'Try', 'To build' and 'To run' lines have two '#'s. Some had one and
others had three.
An exception is that in 1984/anonymous/README.md for the alternative
code that had three '#'s. This is not consistent yet and it might be
that only two are desired. But for now that one at least has three.
Simply the Makefile header.
Refer to the //www.ioccc.org/bugs.md URL (that will eventually exist).
Now using CC BY-SA 4.0 License to how you may share and adapt the
Makefile.
This still crashes and may very well not work even if it doesn't but I
cannot determine that. I just fixed the initial segfault when opening
the file. I believe it will take much debugging, a 32-bit system to test
it on and also a knowledge of the ELF format. There might be other
things but I believe those are the minimum requirements.
I did fix the supplementary program bellard.otccex.c so it does not
segfault and seemingly it works too (I didn't really evaluate that the
output is correct but it does process the args anyway).
I updated bugs.md to note that this entry does not work and any help
would be appreciated.
The commit 00ae59cd47 had a
mistake that introduces changes to Makefiles for 1996 thru 2020
that should not have been included.
This change reverses these intermediate changes until
the given year's Makefiles are ready.
There is one exception:
$ find . -name '*.hint' -execdir git mv '{}' README.md \;
git statufatal: destination exists, source=1992/albert/albert.hint, destination=1992/albert/README.md
Looking at the two files they differ quite a bit so I've not changed it.
I'll bring this up on GitHub.
We we move 1988-2004 entries from all of a year's winning entries
in a single directory to each winner being in their own sub-directory
under the given year directory.