[LLVMdev] Proposal for GSoC project for improving llvm-test testsuite
Holger Schurig
hs4233 at mail.mn-solutions.de
Wed Mar 19 13:09:26 PDT 2008
> "Didn't work" means... what? Compilation failed? Program doesn't work?
> Either way: what mesages do you get?
The graphical screen was just blank. darkplaces emits some log messages as usual. But step by step...
Used LLVM-GCC
-------------
The used llvm-gcc, when run with "llmv-gcc --version" shows "llvm-gcc (GCC) 4.2.1 (Based on Apple Inc. build 5546) (LLVM build 47212)".
So it has been a month ago when I did this test.
I'm building llvm and llvm-gcc with the attached Makefile. There you can see what I'm using for configure, but I guess that's nothing too fancy.
Used Darkplaces
---------------
I'm used darkplaces from SVN. Not sure what SVN revision it was a month ago, but the same problem happens with the current one. To get exactly the same engine source code that I currently have, do
$ svn co -r8212 svn://svn.icculus.org/twilight/trunk/darkplaces
Now apply the following attached "llvm.patch" to it. The patch changes:
* DO_CC to be "llvm-gcc --emit-llvm"
* DO_LD to be "llvm-ld -O2 -native -time-passes"
* CPUOPTIMIZATIONS=-march=athlon
* don't compile builddate.c on-the-fly at link time, because
llvm-ld can't do that
* don't set LDFLAGS_RELEASE to be the same as the compiler
optimization flags
Now do "make cl-release" and you should get an executable named "darkplaces-glx".
Used Nexuiz data files
----------------------
Finally you need the nexuiz data files. They are rather huge, a whopping 363 MB. Get them like this from http://mesh.dl.sourceforge.net/sourceforge/nexuiz/nexuiz-24.zip. Extract it, e.g. with "unzip -x nexuiz-24.zip"
Run the whole thing
-------------------
I call the engine this way:
$ ./darkplaces-glx \
-window
-developer
-nexuiz
-basedir /usr/src/darkplaces/Nexuiz
"-window" makes the program not use fullscreen, then you can still see the log output. "-developer" turns additional messages and warnings on. "-nexuiz" switches the engine into nexuiz mode, the mode must suit the data files. And for "-basedir" add the full path to the data files you downloaded and extract.
Once started, the game will emit lot's of log output:
Console initialized.
Nexuiz Linux 20:12:44 Mar 19 2008
Trying to load library... "libz.so.1" - loaded.
...
========Initialized=========
Client using an automatically assigned port
Client opened a socket on address local:2
Client opened a socket on address 0.0.0.0:56687
Besides the log output to stdout, it also opens a graphical window. Then the engine should display a graphical, stylized "n" shortly before it emits the "Initialized" line. And this is the first difference between the llvm-gcc darkplaces-glx and the gcc-4.2 darkplaces. Later it should show another uglier "n", then three screens where you can use the mouse to select things.
However, with the llvm-gcc version I just see a dark screen. And here it hangs and eat's CPU time. I must admit that I was too lazy to simply run the program under gdb's auspice and interrupt/backtrace it :-/
Used gcc-4.2 darkplace engine
-----------------------------
To get a working engine from SVN, I keep the makefile/makefile.inc in it's (almost) original form and just make sure that
CC=gcc-4.2
CPUOPTIMIZATIONS=-march=athlon
Now I also compile with "make cl-release". The used compiler show fors "gcc-4.2 --version" the text "gcc-4.2 (GCC) 4.2.3 (Debian 4.2.3-2)".
With this version, there is a graphical output, a stylized n, displayed even before the line "========Initialized=========" appears in the log.
The gcc-compiled one emits some more messages to log:
========Initialized=========
Client using an automatically assigned port
Client opened a socket on address local:2
Client opened a socket on address 0.0.0.0:56687
Map farewell provides unknown info item author_email, ignored
Map farewell provides unknown info item author_www, ignored
Map warfare provides unknown info item author_email, ignored
Map warfare provides unknown info item author_www, ignored
Attempted division by zero in menu
Attempted division by zero in menu
Attempted division by zero in menu
Attempted division by zero in menu
ln: 5 iterations
Sending extended response requests...
Fake CD track 1 playing...
At this time, I see the game menu and can select any options.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Makefile
Type: text/x-makefile
Size: 5945 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20080319/f3bbb813/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: llvm.patch
Type: text/x-diff
Size: 3663 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20080319/f3bbb813/attachment.patch>
More information about the llvm-dev
mailing list