[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
-ldl problem on Sun platform
> Or, put an "--disable-static" option when you do your "configure".
If you really want to make a static ns binary on the sun, you just have
to make a "dummy" dl library. I'm attaching the dl.c and a Makefile for
building this.
Giao
OBJ = dl.o
libdl.a: $(OBJ)
gar rc libdl.a $(OBJ)
ranlib libdl.a
clean:
rm libdl.a $OBJ
/*
It's a common error, seen on Solaris and SunOS. One bit of info is
the following paragraph from /usr/sww/doc/faq/X11.faq:
--star--
Subject: 114) Why doesn't my Sun with SunOS 4.1 know about _dlsym, etc.?
If you get errors with _dlsym _dlopen _dlclose undefined, link with
libdl.a. Add "-ldl" to your and eventually to your site.def. You may want to
surround it with "-Bstatic -ldl -Bdynamic" if you add it to the EXTRA_LIBRARIES
variable, since "syslibs" get added after EXTRA_LIBRARIES on the eventual
compilation command; otherwise you may not have a shared libdl. (Or compile
the stubs shared.)
--end--
This file provides some basic stubs for the dl functions:
/usr/sww/share/src/4.4BSD-Lite/usr/src/contrib/sun.sharedlib/usr.lib/libdl/dl.c
*/
/*
* This source code is a product of Sun Microsystems, Inc. and is provided
* for unrestricted use provided that this legend is included on all tape
* media and as a part of the software program in whole or part. Users
* may copy or modify this source code without charge, but are not authorized
* to license or distribute it to anyone else except as part of a product or
* program developed by the user.
*
* THIS PROGRAM CONTAINS SOURCE CODE COPYRIGHTED BY SUN MICROSYSTEMS, INC.
* SUN MICROSYSTEMS, INC., MAKES NO REPRESENTATIONS ABOUT THE SUITABLITY
* OF SUCH SOURCE CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT
* EXPRESS OR IMPLIED WARRANTY OF ANY KIND. SUN MICROSYSTEMS, INC. DISCLAIMS
* ALL WARRANTIES WITH REGARD TO SUCH SOURCE CODE, INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN
* NO EVENT SHALL SUN MICROSYSTEMS, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT,
* INCIDENTAL, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
* FROM USE OF SUCH SOURCE CODE, REGARDLESS OF THE THEORY OF LIABILITY.
*
* This source code is provided with no support and without any obligation on
* the part of Sun Microsystems, Inc. to assist in its use, correction,
* modification or enhancement.
*
* SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
* INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS
* SOURCE CODE OR ANY PART THEREOF.
*
* Sun Microsystems, Inc.
* 2550 Garcia Avenue
* Mountain View, California 94043
*/
/* @(#)dl.c 1.1 89/09/04 SMI */
/*
* Copyright (c) 1989, 1991 Sun Microsystems, Inc.
*/
/*
* Stub library for programmer's interface to the dynamic linker. Used
* to satisfy ld processing, and serves as a precedence place-holder at
* execution-time. If these routines are actually called, it is considered
* a program-terminating error -- the dynamic linker has gotten very confused.
*/
#include <stdio.h>
static char error[] = "%s: stub interception failed\n";
/*ARGSUSED*/
void *
dlopen(file, mode)
char *file; /* file to be added */
int mode; /* mode of addition */
{
fprintf(stderr, error, "dlopen");
abort();
/*NOTREACHED*/
}
/*ARGSUSED*/
void *
dlsym(dl, cp)
void *dl; /* object to be searched */
char *cp; /* symbol to be retrieved */
{
fprintf(stderr, error, "dlsym");
abort();
/*NOTREACHED*/
}
/*ARGSUSED*/
int
dlclose(dl)
void *dl; /* object to be removed */
{
fprintf(stderr, error, "dlclose");
abort();
/*NOTREACHED*/
}
char *
dlerror()
{
fprintf(stderr, error, "dlerror");
abort();
/*NOTREACHED*/
}
char* dgettext()
{
}