Jump to content

Fabrizio Caruso

  • Content Count

  • Joined

  • Last visited

Community Reputation

42 Excellent

About Fabrizio Caruso

  • Rank
    Chopper Commander
  1. @tursi, I have already posted my Makefile here, which is a trivial one with just all the source files in one single target line and the -nostdlib flag. It builds all the .o files as expected. It fails with the linking. I most probably need to run the linker command separately with the good linkfile. I was hoping I could do it with a single command line as I do with standard gcc.
  2. @themole, I will try to use a cleaner Makefile target... The current ti99_tiny_no_graphics target if used with the -c option, will produce the .o files. I guess I just need to invoke the linker on those files + use the linkfile, crt and cart files. I can try to invoke the compiler on each file but it fails because it does not find some files. I probably need to include some header files with some include option.
  3. @themole I am not explicitly calling the linker in the ti99_tiny_no_graphics target. I just invoke gcc with no stdlib
  4. @tursi I am not invoking the linker explicitly as gcc does this automatically. My game can be compiled by standard gcc this way. I am using the crt and linkfile from the hello2 example here. I have no stdlib dependencies as I provide what I need myself. I am probably doing something stupid.
  5. I am now close to getting Cross Chase compiled with GCC for TI: " ti99_tiny_no_graphics: $(TI99_CC) $(TI99_OPTS) \ -I$(SOURCE_PATH) \ -D__GCC_BUFFERED__ \ ... $(TINY_FILES) \ $(CROSS_LIB_PATH)/rand/rand.c \ $(TOOLS_PATH)/ti99/cart_header.o \ $(TOOLS_PATH)/ti99/crt0.o " produces the following errors: " ../tools/ti99/crt0.o: In function `_start2': (.text+0x18): undefined reference to `__DATA_START' ../tools/ti99/crt0.o: In function `_start2': (.text+0x1c): undefined reference to `__DATA_END' ../tools/ti99/crt0.o: In function `_start2': (.text+0x22): undefined reference to `__VAL_START' ../tools/ti99/crt0.o: In function `L5': (.text+0x28): undefined reference to `__DATA_END' ../tools/ti99/crt0.o: In function `L4': (.text+0x2e): undefined reference to `__BSS_START' ../tools/ti99/crt0.o: In function `L4': (.text+0x32): undefined reference to `__BSS_END' ../tools/ti99/crt0.o: In function `L10': (.text+0x3c): undefined reference to `__BSS_END' collect2: ld returned 1 exit status make: *** [Makefile:4976: ti99_tiny_no_graphics] Error 1 "
  6. Thanks! I do not use any input/output standard functions. I have a dependency with rand, which is easily replaced with a custum one.
  7. @jedimatt42 How do I remove the -lgcc from my build statement? I just build with tms9900-gcc file1 file2 ... It would be cool if gcc for ti could be used with the very same syntax as gcc
  8. I am trying to use gcc for ti to compile my game Cross Chase. Cross Chase can be compiled with standard GCC and other GCC derivatives but it fails with GCC for TI with a linker error: ld: cannot find -lgcc Cross Chase source code is spread over many files at different locations with lots of nested includes. I have not been able to use any of the template examples (hello or hello2 examples here) for my game. With all other GCC variants I simply use gcc with all the .c files and gcc takes care of linking the object files. GCC for TI fails but if I pass the "-c", it does create the .o fails. I am hoping to be able to link the produced .o files. Is the error about "-lgcc" expected?
  9. If I try to use tms9900-gcc as gcc to compile and link a list of files, I get the following linker error: /opt/gcc4ti99/lib/gcc/tms9900/4.4.0/../../../../tms9900/bin/ld: cannot find -lgcc I guess this is expected. Isn't it?
  10. Should GCC for TI be called GCC for TMS9900? or does it have specific dependencies on the TI99 computer roms and hardware? What is to produce a functional binary for the TI99 that can be loaded into an emulator or real hardware? I guess one needs a .crt file and maybe some specific compiler options and "packaging" tools. Where can I get the .crt file(s) and compiler options and tools to produce a rom/tape/disk images?
  11. @cmcureau, I agree with you. Maybe the current libc/conio could also be part of the docker image. So that people could just use the docker image and compile a simple "hello world" example and get going very quickly. Alternatively, some simple instructions on how to use the docker image with an external lib, could be provided. This should be simple. The docker image cannot substitute completely a documented installation procedure. It does, however, provide an immediately usable environment to get more people on board.
  12. As a temporary solution, could someone please update the first page with the info that makes it clear what has to be done when building GCC for TI from scratch? I mean things like: 1. dependency on libgmp-dev libmpfr-dev tree 2. export MAKEINFO=missing 3. ignore error libstdc++ and look for the binaries in the target directory People who bump into this thread we'll all get stuck or slowed down by the fact that some unexpected errors occurs. Many users may thing the whole thing is simply broken and unusable.
  13. @mizapf, yes, a docker image is one way to make the life easier but in this case the installation instructions require some guess-work. Having a docker image makes GCC for TI available to the "masses". The current installation process reduces the number of users to a fraction of the people who may want to give it a try. A docker image is very nice but installation should also be possible for the "masses". I am asking to have a more detailed list of steps that are required to install GCC for TI on a recent Linux distribution: - export MAKEINFO=missing - list dependencies (at least the name of the packages on the most common distros such as Ubuntu) - a message that says: it is OK if the script fails with libstdc++ errors Ideally a better script should handle the MAKEINFO and final error message.
  14. Ok, I figured out again that it did work despite the errors. The correct procedure is: 1. Install libgmp-dev libmpfr-dev tree 2. Set export MAKEINFO=missing (to fix one error about texinfo) 3. Run the script 4. Find files inside <target dir>/bin Could someone please update the procedure with the complete list of steps? Or maybe fix the script to handle some of them?
  • Create New...