[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: --disable-ldbm won't build (ITS#586)
Logged as a Sun compiler bug, #4345304. A reasonable work around
is to include -xildoff with any compiler flags that ask for optimization.
From: ARSystem@es.net
To: helm@fionn.es.net
Subject: NT/UNIX 00877 - Opened - Sun c compiler bug
Message-Id: <E132GcX-0003wq-00@netdb4.es.net>
Date: Wed, 14 Jun 2000 10:06:29 -0700
NT/UNIX 00877 - Opened
Ticket ID : 00877
Opened By : Helm
Created : 06/14/00 10:06:28
Status : Opened
Customer : Helm
User Priority : MEDIUM
Request Type : Software
Platform : SUN
Host Name : all solaris
Host Location :
Customers Email : helm@fionn.es.net
Group : NISG
Problem Summary : Sun c compiler bug
Problem Description :
06/14/00 10:06:28 ARWeb User
From: Fatema Arzoughi
The bugid is 4345304 and I will let you know if there is any work on that .. or
you check it in sunsolve for resolution. It will take a while to go to sunsolve
.Initial testing on this reveals that the link will succeed if either
- you turn off the incremental linker (-xildoff) or
remove -g from the link command line.
here is another workaround:
adding a file zippo.c that is also compiled -O to the archive, but having a
non-zero text section, fixes the problem for ILD.
Fatema Arzoughi writes:
> Can you send me a small test case or small program that I can test it with our
> system here. If I see the same result I will report a bug. Thanks.
Sure; I didn't have time to assemble make file & wrap but this
should do:
hello.c:
#include <stdio.h>
main() {
printf( "Hello!\n");
}
===
version.c:
/*
* Copyright (c) 1995 Regents of the University of Michigan.
* All rights reserved.
*
* Redistribution and use in source and binary forms are permitted
* provided that this notice is preserved and that due credit is given
* to the University of Michigan at Ann Arbor. The name of the University
* may not be used to endorse or promote products derived from this
* software without specific prior written permission. This software
* is provided ``as is'' without express or implied warranty.
*/
static char Version[] = " libldbm.a v1.2.7-Release (Mon Jun 12 15:13:40 PDT 2000
)\n\thelm@surya:/export/home/helm/project/openldap/SunOS.5.7-globus/libraries/lib
ldbm\n";
===
ldbm.c:
#ident "@(#)stddef.h 1.15 97/12/22 SMI"
#ident "@(#)isa_defs.h 1.16 99/05/25 SMI"
typedef int ptrdiff_t;
typedef unsigned int size_t;
typedef long wchar_t;
#ident "@(#)syslog.h 1.11 96/05/17 SMI"
#ident "@(#)feature_tests.h 1.17 97/12/04 SMI"
#ident "@(#)syslog.h 1.10 92/07/14 SMI"
#ident "@(#)va_list.h 1.11 97/11/22 SMI"
typedef void *__va_list;
void openlog(const char *, int, int);
void syslog(int, const char *, ...);
void closelog(void);
int setlogmask(int);
void vsyslog(int, const char *, __va_list);
#ident "acomp: WorkShop Compilers 4.2 01 Oct 1997 C 4.2 patch 104668-05"
===
Then do this:
cc -g -O -c hello.c
cc -g -O -c ldbm.c
cc -g -O -c version.c
ar ru libldbm.a ldbm.o version.o
cc -g -O -o hello hello.o libldbm.a
ild: (bad file) garbled symbol table in archive libldbm.a
Then try this:
cc -g -c version.c
ar ru libldbm.a ldbm.o version.o
cc -g -o hello hello.o libldbm.a
% hello
Hello!
Thanks, let me know how it goes. ==mwh
Michael Helm (510 486 7248)
ESnet/Berkeley Lab