[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Test report coreutils-5.3.0 on Solaris 7
From: |
Eric Blake |
Subject: |
Test report coreutils-5.3.0 on Solaris 7 |
Date: |
Wed, 12 Jan 2005 07:46:36 -0700 |
User-agent: |
Mozilla Thunderbird 1.0 (Windows/20041206) |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I have access to an old Solaris 7 box at work, which has gcc 2.8.1. When
compiled with CFLAGS='', all non-root tests pass or are skipped. But with
the default CFLAGS='-g -O2', gcc miscompiles putchar() (basically, it
replaces '\n' with '\0'). This breaks, among other things, the `yes'
executable, and led to a runaway process in the testsuite that consumed my
entire disk quota. A truss log of a stripped-down yes.c is attached, to
show how putchar() is miscompiled when optimized. Is it worth putting a
workaround into coreutils to accomodate this old platform/gcc combination,
or should I just try again using the system cc or else upgrading gcc to
the 3.x series?
$ uname -a
SunOS voatm1 5.7 Generic_106541-02 sun4u sparc SUNW,Ultra-5_10 Solaris
$ config.guess
sparc-sun-solaris2.7
$ gcc -v
Reading specs from
/software/gnu/gcc/2.8.1/sun4os5/lib/gcc-lib/sparc-sun-solaris2.6/2.8.1/specs
gcc version 2.8.1
- --
Life is short - so eat dessert first!
Eric Blake address@hidden
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (Cygwin)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFB5ThM84KuGfSFAYARAnEgAKCEGlpvGRnSSBmcJAtHOFxlIxqb2ACgz88o
KDULazOEbDCReF7srKebJsc=
=rcIU
-----END PGP SIGNATURE-----
# cat myyes.c
/* yes - output a string repeatedly until killed
Copyright (C) 1991-1997, 1999-2005 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* David MacKenzie <address@hidden> */
#include <stdio.h>
#include <sys/types.h>
#include <errno.h>
#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1
#define _(str) str
void
error(int dummy, int err, const char* str)
{
puts("myyes: ");
errno = err;
perror(str);
}
/* The official name of this program (e.g., no `g' prefix). */
#define PROGRAM_NAME "yes"
#define AUTHORS "David MacKenzie"
/* The name this program was run with. */
char *program_name;
void
usage (int status)
{
if (status != EXIT_SUCCESS)
fprintf (stderr, _("Try `%s --help' for more information.\n"),
program_name);
else
{
printf (_("\
Usage: %s [STRING]...\n\
or: %s OPTION\n\
"),
program_name, program_name);
fputs (_("\
Repeatedly output a line with all specified STRING(s), or `y'.\n\
\n\
"), stdout);
/* fputs (HELP_OPTION_DESCRIPTION, stdout); */
/* fputs (VERSION_OPTION_DESCRIPTION, stdout); */
/* printf (_("\nReport bugs to <%s>.\n"), PACKAGE_BUGREPORT); */
}
exit (status);
}
int
main (int argc, char **argv)
{
int j;
program_name = argv[0];
if (argc <= optind)
{
optind = argc;
argv[argc++] = "y";
}
for (j = 0;j < 512;j++)
{
int i;
for (i = optind; i < argc; i++)
if (fputs (argv[i], stdout) == EOF
|| putchar (i == argc - 1 ? '\n' : ' ') == EOF)
{
error (0, errno, _("standard output"));
exit (EXIT_FAILURE);
}
}
}
# gcc -o myyes myyes.c
# truss myyes 2>&1
execve("myyes", 0xFFBEF8EC, 0xFFBEF8F4) argc = 1
open("/dev/zero", O_RDONLY) = 3
mmap(0x00000000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE, 3, 0) =
0xFF3A0000
open("/usr/dt/lib/libc.so.1", O_RDONLY) Err#2 ENOENT
open("/usr/openwin/lib/libc.so.1", O_RDONLY) Err#2 ENOENT
open("/usr/lib/libc.so.1", O_RDONLY) = 4
fstat(4, 0xFFBEF484) = 0
mmap(0x00000000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0xFF390000
mmap(0x00000000, 761856, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0xFF280000
munmap(0xFF324000, 57344) = 0
mmap(0xFF332000, 25540, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED,
4, 663552) = 0xFF332000
close(4) = 0
open("/usr/dt/lib/libdl.so.1", O_RDONLY) Err#2 ENOENT
open("/usr/openwin/lib/libdl.so.1", O_RDONLY) Err#2 ENOENT
open("/usr/lib/libdl.so.1", O_RDONLY) = 4
fstat(4, 0xFFBEF484) = 0
mmap(0xFF390000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 4, 0) =
0xFF390000
close(4) = 0
open("/usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1", O_RDONLY) = 4
fstat(4, 0xFFBEF264) = 0
mmap(0x00000000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0xFF380000
mmap(0x00000000, 16384, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0xFF370000
close(4) = 0
close(3) = 0
munmap(0xFF380000, 8192) = 0
ioctl(1, TCGETA, 0xFFBEF644) Err#25 ENOTTY
fstat64(1, 0xFFBEF6B8) = 0
brk(0x00021B48) = 0
brk(0x00025B48) = 0
llseek(0, 0, SEEK_CUR) = 270989
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
write(1, " y\n y\n y\n y\n y\n y\n".., 1024) = 1024
_exit(1)
# gcc -o myyes -O2 myyes.c
# truss myyes 2>&1
execve("myyes", 0xFFBEF8EC, 0xFFBEF8F4) argc = 1
open("/dev/zero", O_RDONLY) = 3
mmap(0x00000000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE, 3, 0) =
0xFF3A0000
open("/usr/dt/lib/libc.so.1", O_RDONLY) Err#2 ENOENT
open("/usr/openwin/lib/libc.so.1", O_RDONLY) Err#2 ENOENT
open("/usr/lib/libc.so.1", O_RDONLY) = 4
fstat(4, 0xFFBEF484) = 0
mmap(0x00000000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0xFF390000
mmap(0x00000000, 761856, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0xFF280000
munmap(0xFF324000, 57344) = 0
mmap(0xFF332000, 25540, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED,
4, 663552) = 0xFF332000
close(4) = 0
open("/usr/dt/lib/libdl.so.1", O_RDONLY) Err#2 ENOENT
open("/usr/openwin/lib/libdl.so.1", O_RDONLY) Err#2 ENOENT
open("/usr/lib/libdl.so.1", O_RDONLY) = 4
fstat(4, 0xFFBEF484) = 0
mmap(0xFF390000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 4, 0) =
0xFF390000
close(4) = 0
open("/usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1", O_RDONLY) = 4
fstat(4, 0xFFBEF264) = 0
mmap(0x00000000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0xFF380000
mmap(0x00000000, 16384, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0xFF370000
close(4) = 0
close(3) = 0
munmap(0xFF380000, 8192) = 0
ioctl(1, TCGETA, 0xFFBEF64C) Err#25 ENOTTY
fstat64(1, 0xFFBEF6C0) = 0
brk(0x00021A28) = 0
brk(0x00025A28) = 0
llseek(0, 0, SEEK_CUR) = 272401
y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y write(1,
" y\0 y\0 y\0 y\0 y\0 y\0".., 1024) = 1024
_exit(2)
# gcc -v
Reading specs from
/software/gnu/gcc/2.8.1/sun4os5/lib/gcc-lib/sparc-sun-solaris2.6/2.8.1/specs
gcc version 2.8.1
- Test report coreutils-5.3.0 on Solaris 7,
Eric Blake <=