TADS compile error only happens in the Linux box

Does anyone working in Linux and Windows boxes have some tips for working with TADS in Linux?

A little background:
I’m currently in the process of transferring most of my WIPs (including the non-IF ones) into a Lubuntu 11.04 box to help me learn more about managing/supporting Linux machines.

I already have tadsc and frobtads set up. When I compile a sample source code file called “test.t” inside Lubuntu, I get the “TADS-334: invalid property value” error message. I have no problems compiling this file inside Windows.

Checking the file using the cat command, in Cream/gVim, and in Geany for any extra unnecessary characters produces nothing. The line it points to is just a list:

locationList = [startroom secondroom] ;I’m guessing this has something to do with file encodings, since Cream shows the file is in UTF-8. Anything else I should look out for?

Can you attach a minimal *.t file that reproduces the problem?

Thanks. I’ll try to post that in a bit, but just to let you know, the Frobtads version of the T2 compiler in Windows works fine on the test.t file without modifying anything in the file.

EDIT: Please see the attached file “test2.t” - it’s the most minimal version I can reduce it to. Please pay no attention to most of the “story text” there - I whipped it up to test something I was working on before. :blush:
test.zip (683 Bytes)

Ah, you got hit by TADS2’s inconsistent class name capitalization. It’s not “fixedItem”, it’s “fixeditem”. With a lowercase “i”.

It’s weird that it works in Windows though. Maybe case sensitivity is disabled there? To disable it, you can use the “-case” option of tadsc: “-case+” enables case sensitivity, “-case-” disables it.

Btw, what do you mean with “Frobtads version of the T2 compiler in Windows”? Did you build frobtads for Windows?

Nope, sorry. Tried that before, did not work either. Here’s what I’m getting:

isxek@ubuntu:~/projs/dev/test$ tadsc -C+ -case- -i /usr/local/share/frobtads/tads2 test2.t TADS Compiler v2.5.14 Copyright (c) 1993, 2007 Michael J. Roberts TADS for POSIX/Unix/MS-Windows [POSIX_UNIX_MSWINDOWS] patchlevel 0.0 Nikos Chantziaras <realnc@gmail.com> maintains this port. test2.t(41): error TADS-334: invalid property value

Yes, along with the TADS 2 compiler. With the Windows build, it works fine.

Any ideas?

Weird. I’ll have a look at it, but probably tomorrow. In the meantime, try and see if this works as a workaround:

locationList = { return [startroom secondroom]; }

Is your Linux box 64-bit, btw? Maybe you’ve hit a 64-bit bug (there were a few when I originally did the port.)

I’ll try that later.

Yes. But the Windows box was also 64-bit (Windows 7 x64).

That doesn’t matter. FrobTADS was still compiled as a 32-bit application.

It’s a 64-bit issue after all. As a workaround, you should build it as a 32-bit app. You can do this by adding “-m32” to CFLAGS, CXXFLAGS and LDFLAGS. Like:

./configure CFLAGS="-m32 -O2" CXXFLAGS="-m32 -O2 -fno-strict-aliasing" LDFLAGS="-m32"

I’m getting the following when I do that:isxek@ubuntu:~/Downloads/frobtads-1.0$ ./configure CFLAGS="-m32 -O2" CXXFLAGS="-m32 -O2 -fno-strict-aliasing" LDFLAGS="-m32" checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking for g++... g++ checking whether the C++ compiler works... no configure: error: in `/home/arnel/Downloads/frobtads-1.0': configure: error: C++ compiler cannot create executables See `config.log' for more details
Looking at the config log, I got a bunch of:/usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/libstdc++.so when searching for -lstdc++ /usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/libstdc++.a when searching for -lstdc++ /usr/bin/ld: cannot find -lstdc++ /usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/../../../libm.so when searching for -lm /usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/../../../libm.a when searching for -lm /usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/libm.so when searching for -lm <snip>I’ve attached the complete config.log file if you need to take a look, but it looks like my safest bet would be to set up an x86 Lubuntu Linux VM somewhere and compile both Frobtads and the T2 compiler there.

I’ll post back if I get any errors. Thanks for the help. :smiley:
config.log (9.75 KB)

You’re probably missing the 32-bit compatibility packages. There are packages like “ia32-libs” and “g+±multilib” that need to be installed for the -m32 option to work (name might depend on the Ubuntu version).

Yup, got some clues after googling around a bit. It’s now compiling as it should. Appreciate the help! :smiley: