* A problem with -ansi?
@ 1998-04-04 14:20 Christian Joensson FOA 72
1998-04-07 19:34 ` Jim Wilson
0 siblings, 1 reply; 2+ messages in thread
From: Christian Joensson FOA 72 @ 1998-04-04 14:20 UTC (permalink / raw)
To: egcs
I found a problem with gcc-2.8.1 on Solaris 2.5 that is based on an old
posting from Tony Lacey <a.lacey@sheffield.ac.uk> to news:gnu.gcc.bug ,
<199702171551.PAA16907@chive.shef.ac.uk>. In the posting, he gives an example
code snippet, etest.c that is this one:
#include <stdio.h>
#include <math.h>
int main(void)
{
double res;
res = erf(0.1);
printf("%f\n", res);
}
I'm not really sure of what's going on, but I'm afraid that someting might be
working quite that well...
Any comments are greatly appreciated.
--
Christian Jvnsson chj@lin.foa.se
Sweden's Defence Research Establishment
Dep't of Communication Systems FOA 72
Compiling with gcc-2.8.1, with and without -anis, on Solaris 2.5 give these
two results:
gcc -v -o etest etest.c -lm
Reading specs from /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/specs
gcc version 2.8.1
/home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/cpp -lang-c -v -undef -D__GNUC__=2 -D__GNUC_MINOR__=8 -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) etest.c /var/tmp/cca003SF.i
GNU CPP version 2.8.1 (sparc)
#include "..." search starts here:
#include <...> search starts here:
/home/guneri/gnu-980317/sparc-sun-solaris2.5/include
/home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/include
/usr/include
End of search list.
/home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/cc1 /var/tmp/cca003SF.i -quiet -dumpbase etest.c -version -o /var/tmp/cca003SF.s
GNU C version 2.8.1 (sparc-sun-solaris2.5) compiled by GNU C version 2.8.1.
/home/guneri/gnu-980317/sparc-sun-solaris2.5/bin/as -V -Qy -s -o /var/tmp/cca003SF1.o /var/tmp/cca003SF.s
GNU assembler version 980303 (sparc-sun-solaris2.5), using BFD version 2.8.1.0.23
/home/guneri/gnu-980317/sparc-sun-solaris2.5/bin/ld -V -Y P,/usr/ccs/lib:/usr/lib -Qy -o etest /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/crt1.o /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/crti.o /usr/ccs/lib/values-Xa.o /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/crtbegin.o -L/home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1 -L/home/guneri/gnu-980317/sparc-sun-solaris2.5/lib -L/usr/ccs/bin -L/usr/ccs/lib -L/home/guneri/gnu-980317/lib /var/tmp/cca003SF1.o -lm -lgcc -lc -lgcc /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/crtend.o /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/crtn.o
GNU ld version 2.8.2 (with BFD 2.8.1.0.23)
Supported emulations:
elf32_sparc
./etest
0.112463
gcc -v -ansi -o etest etest.c -lm
Reading specs from /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/specs
gcc version 2.8.1
/home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/cpp -lang-c89 -v -undef -D__GNUC__=2 -D__GNUC_MINOR__=8 -trigraphs -D__STRICT_ANSI__ -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) etest.c /var/tmp/cca003SP.i
GNU CPP version 2.8.1 (sparc)
#include "..." search starts here:
#include <...> search starts here:
/home/guneri/gnu-980317/sparc-sun-solaris2.5/include
/home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/include
/usr/include
End of search list.
/home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/cc1 /var/tmp/cca003SP.i -quiet -dumpbase etest.c -ansi -ansi -version -o /var/tmp/cca003SP.s
GNU C version 2.8.1 (sparc-sun-solaris2.5) compiled by GNU C version 2.8.1.
/home/guneri/gnu-980317/sparc-sun-solaris2.5/bin/as -V -Qy -s -o /var/tmp/cca003SP1.o /var/tmp/cca003SP.s
GNU assembler version 980303 (sparc-sun-solaris2.5), using BFD version 2.8.1.0.23
/home/guneri/gnu-980317/sparc-sun-solaris2.5/bin/ld -V -Y P,/usr/ccs/lib:/usr/lib -Qy -o etest /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/crt1.o /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/crti.o /usr/ccs/lib/values-Xc.o /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/crtbegin.o -L/home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1 -L/home/guneri/gnu-980317/sparc-sun-solaris2.5/lib -L/usr/ccs/bin -L/usr/ccs/lib -L/home/guneri/gnu-980317/lib /var/tmp/cca003SP1.o -lm -lgcc -lc -lgcc /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/crtend.o /home/guneri/gnu-980317/lib/gcc-lib/sparc-sun-solaris2.5/2.8.1/crtn.o
GNU ld version 2.8.2 (with BFD 2.8.1.0.23)
Supported emulations:
elf32_sparc
./etest
1069128089.000000
Doing the similar thing on RHL 5.0/Intel with binutils-2.8.1.0.28-2 added
using egcs-980328, I get:
gcc -v -o etest etest.c -lm
Reading specs from /usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/specs
gcc version egcs-2.91.16 980328 (gcc-2.8.0 release)
/usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/cpp -lang-c -v -undef -D__GNUC__=2 -D__GNUC_MINOR__=91 -D__ELF__ -Dunix -Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux -Asystem(posix) -Di386 -Di586 -Asystem(unix) -Acpu(i386) -Amachine(i386) -D__i386__ -D__i586__ -Asystem(unix) -Acpu(i386) -Amachine(i386) etest.c /tmp/cca08141.i
GNU CPP version egcs-2.91.16 980328 (gcc-2.8.0 release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include
/usr/local/i586-pc-linux-gnu/include
/usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/include
/usr/include
End of search list.
/usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/cc1 /tmp/cca08141.i -quiet -dumpbase etest.c -version -o /tmp/cca08141.s
GNU C version egcs-2.91.16 980328 (gcc-2.8.0 release) (i586-pc-linux-gnu) compiled by GNU C version egcs-2.91.16 980328 (gcc-2.8.0 release).
as -V -Qy -o /tmp/cca081411.o /tmp/cca08141.s
GNU assembler version 980331 (i586-pc-linux-gnu), using BFD version 2.8.1.0.28
/usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/ld -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o etest /usr/lib/crt1.o /usr/lib/crti.o /usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/crtbegin.o -L/usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16 -L/usr/local/i586-pc-linux-gnu/lib -L/usr/local/lib /tmp/cca081411.o -lm -lgcc -lc -lgcc /usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/crtend.o /usr/lib/crtn.o
./etest
0.112463
gcc -v -ansi -o etest etest.c -lm
Reading specs from /usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/specs
gcc version egcs-2.91.16 980328 (gcc-2.8.0 release)
/usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/cpp -lang-c89 -v -undef -D__GNUC__=2 -D__GNUC_MINOR__=91 -trigraphs -D__STRICT_ANSI__ -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux -Asystem(posix) -Di386 -Di586 -Asystem(unix) -Acpu(i386) -Amachine(i386) -D__i386__ -D__i586__ -Asystem(unix) -Acpu(i386) -Amachine(i386) etest.c /tmp/cca08149.i
GNU CPP version egcs-2.91.16 980328 (gcc-2.8.0 release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include
/usr/local/i586-pc-linux-gnu/include
/usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/include
/usr/include
End of search list.
/usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/cc1 /tmp/cca08149.i -quiet -dumpbase etest.c -ansi -ansi -version -o /tmp/cca08149.s
GNU C version egcs-2.91.16 980328 (gcc-2.8.0 release) (i586-pc-linux-gnu) compiled by GNU C version egcs-2.91.16 980328 (gcc-2.8.0 release).
as -V -Qy -o /tmp/cca081491.o /tmp/cca08149.s
GNU assembler version 980331 (i586-pc-linux-gnu), using BFD version 2.8.1.0.28
/usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/ld -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o etest /usr/lib/crt1.o /usr/lib/crti.o /usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/crtbegin.o -L/usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16 -L/usr/local/i586-pc-linux-gnu/lib -L/usr/local/lib /tmp/cca081491.o -lm -lgcc -lc -lgcc /usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.16/crtend.o /usr/lib/crtn.o
./etest
1069128089.000000
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: A problem with -ansi?
1998-04-04 14:20 A problem with -ansi? Christian Joensson FOA 72
@ 1998-04-07 19:34 ` Jim Wilson
0 siblings, 0 replies; 2+ messages in thread
From: Jim Wilson @ 1998-04-07 19:34 UTC (permalink / raw)
To: Christian Joensson FOA 72; +Cc: egcs
#include <math.h>
...
res = erf(0.1);
Use of -ansi implies that you want an ANSI C compiler. ANSI C specifies
exactly those functions that can be declared in the math.h header file.
This is so that implementations do not needlessly clutter the user namespace.
erf is not one of them, and hence when -ansi is used, math.h can not
declare the erf function. If you have no declaration for erf, then the
compiler assumes it returns an int, and then silently converts the int
return value to double. Hence this program can not work with -ansi.
Jim
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~1998-04-07 19:34 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1998-04-04 14:20 A problem with -ansi? Christian Joensson FOA 72
1998-04-07 19:34 ` Jim Wilson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).