Installation guide
• The varargs function on RISC systems is different from that function
on VAX systems. Your application will fail if it walks an argument list
by incrementing the address of an argument, particularly if the
arguments are double-precision values. Use the macros in varargs.h
when you use functions that have a variable number of arguments.
Compiling with the −varargs option on RISC systems causes the
compiler to detect nonportable code.
• The setjmp/longjmp buffer is larger on RISC systems than on VAX
systems. Applications with a hard-coded, 10-word buffer fail;
applications that include setjmp.h and declare a variable of type
jmp_buf work correctly.
• RISC systems define a macro (for example, LANGUAGE_C) for the
preprocessor that makes it possible to write multilingual include files.
• The −Md or −Mg option is not needed when on RISC systems. The
software supports only one double-precision format.
• The DIGITAL UNIX C compiler does not allow the following obsolete
form of initialization:
int i 0;
The preceding example works on a VAX system, but the VAX cc
compiler issues a warning. The DIGITAL UNIX C compiler issues an
error message.
• The DIGITAL UNIX C compiler has boundary alignment rules. The
only effect this difference should have on your application is that its
performance might be slower than on a VAX system. This performance
change could occur because the kernel corrects alignment errors. Where
possible, align double words, words, and half words on natural
boundaries.
• The DIGITAL UNIX C compiler does not allow you to use a global data
item as if it is a code location. For example, the compiler does not allow
you to use a data structure that has the same name as a system call. If
you use a global data item as a code location, the DIGITAL UNIX C
compiler displays an error message similar to the following one at load
time:
/lib/libc.a(gethostent.o): jump relocation out-of-range,
bad object file produced, can’t jump from 0x4197a0
to 0x10008198 (stat)
If you see this message, change the name of the data structure. (In this
example, it was named stat.)
• The DIGITAL UNIX C compiler does not allow the same .c or .o file to
be listed twice in a command line. The compiler generates errors that
7–30 Migrating Your ULTRIX Application to a DIGITAL UNIX System