This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

egcs-980205 report (Linux/Alpha)



This report details problems I had with egcs-980205 snapshot.

Machine: Alpha, PC164LX, 533 Mhz processor
OS:      Linux, 2.0.33 kernel (patched for Alpha), basically Red Hat 5.0
           distribution (glibc2) with updates

Recompiled all compilers but some testing of results done so far only
for gcc and g77.  Objective-C is not installed.

Snapshot sources were made by patching, with two patches, egcs-980122
and veryfying results with 'brik' utility.  Empty files and directories
were removed.

Compilation problems:
--------------------
Compilation was performed, eventually, with "./configure ; make"
(prefix changed).  Initially this did not work due to a line in Makefile
which says:
        cd $(srcdir) && autoheader
'autoheader' was not found and even 'make -k' could not get around the
problem.  "Solved" by supplying a "do nothing" script named 'autoheader'.
An interesting point is that exactly the same line in Makefile from
egcs-1.0.1 release has no adverse effects on a compilation at all - even
if 'autoheader' does not exist.

It turned out that an existing /usr/bin/as, which is gas from
binutils-2.8.1.0.1, is inadequate for compiling the current egcs.
It will not accept emitted '.arch' assembler directive. (A bunch of
"macro requires $at register while noat in effect" could have been
worked around by forcing an option '-m21164a' in an assembler).
Resolved by replacing this assmbler by a version from ftp.cygnus.com.
This assembler was configured with "--target=alpha-elf64-linux-gnu",
which is a guess.  Seems to be lucky one.  My OS was not automatically
recognized by 'configure' utility and documentation did not really
provided to clear hints.  So far so good.

After that the compilation went through.

Problems with gcc compiler
--------------------------
When compiling Linux kernel with newly made compiler I got the following
error on a file 'drivers/pci/pci.c':

gcc -D__KERNEL__ -I/usr/src/linux-2.0.33/include -Wall -Wstrict-prototypes -g -O2 -pipe -mno-fp-regs  -c -o pci.o pci.c
In file included from pci.c:13:
gcc: Internal compiler error: program cc1 got fatal signal 6
# {standard input}: Assembler messages:
{standard input}:4681: Warning: end of file not at end of a line; newline inserted
{standard input}:5917: Error: syntax error

After dropping an optimization level **on this particular file only** to -O
I was able to recompile the whole Linux kernel.  This kernel booted
and I am running the test machine on it with an uptime, so far, of
roughly 24 hours.  Here is a fragment of boot messages:

Linux version 2.0.33 (root@thebox.home.front)
   (gcc version egcs-2.91.07 980205 (gcc-2.8.0 release)) #4
    Sat Feb 14 12:46:15 MST 1998

Seems to be doing ok.  So far it was used quite heavily from a command
line (massive compiles) and only lightly with X-windows but no extra
troubles cropped out.

Problems with g77 compiler
--------------------------
A configuration for g77 seems to aquired troubles which **did not exist**
in egcs-1.0.1.  An attempt to run a small test program immediately ended
up with a segmentation violation.  Closer scrutiny revealed that
'configure' decided to set 'integer' Fortran type to 'long int'
(it was 'int' for  egcs-1.0.1).  This is 64-bits wide and does not
correspond to many internal structures where 32-bits are expected.
The only reliable way I found of forcing 'int' was by editing
a line

  g77_cv_sys_f2cinteger=${g77_cv_sys_f2cinteger='long int'}

to
  g77_cv_sys_f2cinteger=${g77_cv_sys_f2cinteger='int'}

in libraries/libf2c/config.cache and rerunning 'config' script
in this directory.  This create usable libraries.

Even after that 'configure' failed to detect a number of system
utilities and libU77/u77-test.f program suffered from strange errors.
A remedy for that was a manual intervention once again.  After the
following changes:

--- libU77/config.h~    Sat Feb 14 22:58:09 1998
+++ libU77/config.h     Sat Feb 14 23:49:14 1998
@@ -86,19 +86,19 @@
 #define HAVE_TIMES 1
 
 /* Define if you have the getlogin function.  */
-/* #undef HAVE_GETLOGIN */
+#define HAVE_GETLOGIN 1
 
 /* Define if you have the getgid function.  */
-/* #undef HAVE_GETGID */
+#define HAVE_GETGID 1
 
 /* Define if you have the getuid function.  */
-/* #undef HAVE_GETUID */
+#define HAVE_GETUID 1
 
 /* Define if you have the kill function.  */
-/* #undef HAVE_KILL */
+#define HAVE_KILL 1
 
 /* Define if you have the link function.  */
-/* #undef HAVE_LINK */
+#define HAVE_LINK 1
 
 /* Define if you have the ttyname function.  */
-/* #undef HAVE_TTYNAME */
+#define HAVE_TTYNAME 1

recompiled libraries seemed to be, at last, correct and a program
compiled from libU77/u77-test.f delivered expected output.

It should be noted that for egcs-1.0.1 the last test suffers from
one unexpected failure.  One fragment of it prints:

 Creating file "foo" for testing...
   with stat array  2065 317629 33206 1 0 1002 0 2 887572235 887572235 887572235
 8192 2
 *** FSTAT uid, gid or nlink is wrong

whereas with my current, patched up, g77 compiler I see

 Creating file "foo" for testing...
   with stat array  2065 139463 33206 1 0 0 0 2 887530980 887530980 887530980
 8192 2

as I expect.  There is not group with id 1002 on this machine.
I do not have a good explanation.

   Best regards,
   Michal

   Michal Jaegermann, Hard Data, Edmonton, Alberta, Canada
   michal@ellpspace.math.ualberta.ca


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]