lotus



previous page: SG01) What are the system requirements to run BETA on Silicon Graphics workstations?
  
page up: BETA Programming Language FAQ
  
next page: SG03) Remember to set LD_LIBRARY_PATH

SG02) Gnu C Compiler gcc not supported




Description

This article is from the FAQ, by with numerous contributions by others.

SG02) Gnu C Compiler gcc not supported

You cannot link applications, that specify external OBJFILEs compiled with
gcc. You must use cc for external object files. If you get an error like:

        ld: FATAL 2: Internal: at ../commonlib/ld3264/relocate.c \
        merge_ext returns nil during relocation

this may be caused by an attempt to link a gcc-produced file into your
application.

If you use make files invoked via the MAKE property in a BETA fragment, you
should use $(CC) instead of a hardcoded C compiler name. The BETA compiler
sets CC to a proper default value on alle UNIX platforms.

If you do not know which external object file caused the error to happen,
you may find out like this:

1. Compile the program with beta -p. This will preserve the job-file,
containing the link-directive(s) for the program.
2. Open the preserved jobfile in a text-editor. The job-file is located in
the sgi subdirectory, and has the same name as the application, but
with ..job appended.
3. Add -v as argument to the last invocation of /bin/ld in the job file.
4. Save and execute the job-file.

When the job-file starts to link the final application, it will now print
out the name of each file in the last link-directive as they are processed.
This includes all external object files (specified by OBJFILE in the BETA
code), and you should thus be able to see what file causes the linker to
fail: It is likely to be the last one printed out before the linker crashes.

 

Continue to:















TOP
previous page: SG01) What are the system requirements to run BETA on Silicon Graphics workstations?
  
page up: BETA Programming Language FAQ
  
next page: SG03) Remember to set LD_LIBRARY_PATH