[prev in list] [next in list] [prev in thread] [next in thread] 

List:       postgresql-general
Subject:    Re: [HACKERS] RTLD_LAZY considered harmful (Re: pltlc and pltlcu
From:       Brent Verner <brent () rcfile ! org>
Date:       2002-02-11 3:49:23
[Download RAW message or body]

[2002-02-10 21:24] Tom Lane said:
| Brent Verner <brent@rcfile.org> writes:
| >   freebsd 4.5
| >   netbsd 1.5.2
| 
| > #define RTLD_LAZY  1
| > #define RTLD_GLOBAL        0x100
| 
| Thanks.  Is there an RTLD_NOW symbol on those platforms?

yes. I've attached the dlfcn.h files from each incase there is
anything else in there that might be of interest.

cheers.
  brent

-- 
"Develop your talent, man, and leave the world something. Records are 
really gifts from people. To think that an artist would love you enough
to share his music with anyone is a beautiful thing."  -- Duane Allman

["freebsd-dlfcn.h" (text/plain)]

/*
 * Copyright (c) 1994
 *	The Regents of the University of California.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *	This product includes software developed by the University of
 *	California, Berkeley and its contributors.
 * 4. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 * $FreeBSD: src/include/dlfcn.h,v 1.10.2.1 2000/09/22 02:22:44 jdp Exp $
 */

#ifndef _DLFCN_H_
#define	_DLFCN_H_
#include <sys/cdefs.h>

/*
 * Modes and flags for dlopen().
 */
#define RTLD_LAZY	1	/* Bind function calls lazily */
#define RTLD_NOW	2	/* Bind function calls immediately */
#define RTLD_MODEMASK	0x3
#define RTLD_GLOBAL	0x100	/* Make symbols globally available */
#define RTLD_LOCAL	0	/* Opposite of RTLD_GLOBAL, and the default */

/*
 * Special handle arguments for dlsym().
 */
#define RTLD_NEXT	((void *) -1)	/* Search subsequent objects */
#define RTLD_DEFAULT	((void *) -2)	/* Use default search algorithm */

/*
 * Structure filled in by dladdr().
 */
typedef struct dl_info {
	const char	*dli_fname;	/* Pathname of shared object */
	void		*dli_fbase;	/* Base address of shared object */
	const char	*dli_sname;	/* Name of nearest symbol */
	void		*dli_saddr;	/* Address of nearest symbol */
} Dl_info;

__BEGIN_DECLS
int dladdr __P((const void *, Dl_info *));
int dlclose __P((void *));
const char *dlerror __P((void));
void dllockinit __P((void *_context,
		     void *(*_lock_create)(void *_context),
		     void (*_rlock_acquire)(void *_lock),
		     void (*_wlock_acquire)(void *_lock),
		     void (*_lock_release)(void *_lock),
		     void (*_lock_destroy)(void *_lock),
		     void (*_context_destroy)(void *_context)));
void *dlopen __P((const char *, int));
void *dlsym __P((void *, const char *));
__END_DECLS

#endif /* !_DLFCN_H_ */

["netbsd-dlfcn.h" (text/plain)]

/*	$NetBSD: dlfcn.h,v 1.13 2000/06/13 01:21:53 simonb Exp $	*/

/*-
 * Copyright (c) 1998 The NetBSD Foundation, Inc.
 * All rights reserved.
 *
 * This code is derived from software contributed to The NetBSD Foundation
 * by Paul Kranenburg.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *        This product includes software developed by the NetBSD
 *        Foundation, Inc. and its contributors.
 * 4. Neither the name of The NetBSD Foundation nor the names of its
 *    contributors may be used to endorse or promote products derived
 *    from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

#ifndef _DLFCN_H_
#define _DLFCN_H_

#include <sys/cdefs.h>

#if !defined(_XOPEN_SOURCE)
typedef struct _dl_info {
	const char	*dli_fname;	/* File defining the symbol */
	void		*dli_fbase;	/* Base address */
	const char	*dli_sname;	/* Symbol name */
	const void	*dli_saddr;	/* Symbol address */
} Dl_info;
#endif /* !defined(_XOPEN_SOURCE) */

/*
 * User interface to the run-time linker.
 */
__BEGIN_DECLS
void	*dlopen __P((const char *, int));
int	dlclose __P((void *));
void	*dlsym __P((void *, const char *));
#if !defined(_XOPEN_SOURCE)
int	dladdr __P((const void *, Dl_info *));
int	dlctl __P((void *, int, void *));
#endif
__aconst char *dlerror __P((void));
__END_DECLS

/* Values for dlopen `mode'. */
#define RTLD_LAZY	1
#define RTLD_NOW	2
#define RTLD_GLOBAL	0x100		/* Allow global searches in object */
#define RTLD_LOCAL	0x200
#if !defined(_XOPEN_SOURCE)
#define DL_LAZY		RTLD_LAZY	/* Compat */
#endif

/*
 * dlctl() commands
 */
#if !defined(_XOPEN_SOURCE)
#define DL_GETERRNO	1
#define DL_GETSYMBOL	2
#if 0
#define DL_SETSRCHPATH	x
#define DL_GETLIST	x
#define DL_GETREFCNT	x
#define DL_GETLOADADDR	x
#endif /* 0 */
#endif /* !defined(_XOPEN_SOURCE) */

#endif /* !defined(_DLFCN_H_) */


---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/users-lounge/docs/faq.html


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic