# # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License (the "License"). # You may not use this file except in compliance with the License. # # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE # or http://www.opensolaris.org/os/licensing. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at usr/src/OPENSOLARIS.LICENSE. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # # Copyright 2008 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # Copyright 2021 OmniOS Community Edition (OmniOSce) Association. # SHELL= /usr/bin/ksh93 include $(SRC)/lib/Makefile.lib # Hammerhead: amd64-only SUBDIRS= $(MACH64) all : TARGET= all clean : TARGET= clean clobber : TARGET= clobber install : TARGET= install install_h : TARGET= install_h _msg : TARGET= _msg _feature : TARGET= _feature .KEEP_STATE: .PARALLEL: $(SUBDIRS) all clean clobber install _feature: $(SUBDIRS) # Hammerhead: amd64-only _msg: $(MACH64) include Makefile.defs HDRS= $(HEADERINSTALL) HDRDIR32= $(MACH)/ast HDRDIR64= $(MACH64)/ast include ../Makefile.asthdr install_h: $(SUBDIRS) .WAIT $(ROOTHDRS) install: install_h $(SUBDIRS): FRC @cd $@; pwd; $(MAKE) $(TARGET) FRC: include $(SRC)/lib/Makefile.targ # # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License (the "License"). # You may not use this file except in compliance with the License. # # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE # or http://www.opensolaris.org/os/licensing. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at usr/src/OPENSOLARIS.LICENSE. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # # Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # Copyright (c) 2018, Joyent, Inc. # Copyright 2021 OmniOS Community Edition (OmniOSce) Association. SHELL= /usr/bin/ksh93 LIBRARY= libdll.a VERS= .1 include ../Makefile.defs OBJECTS += $(LIBOBJS) include $(SRC)/lib/Makefile.lib include ../../Makefile.ast MAPFILES= ../mapfile-vers LIBS= $(DYNLIB) LDLIBS += -last -lc # We use "=" here since using $(CPPFLAGS.master) is very tricky in our # case - it MUST come as the last element but future changes in -D options # may then cause silent breakage in the AST sources because the last -D # option specified overrides previous -D options so we prefer the current # way to explicitly list each single flag. # Notes: # - "-D_BLD_DLL" comes from ${mam_cc_DLL} in Mamfile CPPFLAGS= \ $(DTEXTDOM) $(DTS_ERRNO) \ $(DLLPLATFORMCPPFLAGS) \ -Iast -I. \ -I$(ROOT)/usr/include/ast \ -I$(ROOT)/usr/include \ '-DCONF_LIBSUFFIX=".so"' \ '-DCONF_LIBPREFIX="lib"' \ -D_PACKAGE_ast \ -D_BLD_DLL \ -D_BLD_dll CFLAGS += $(ASTCFLAGS) CFLAGS64 += $(ASTCFLAGS64) CERRWARN += -Wno-parentheses CERRWARN += $(CNOWARN_UNINIT) # needs work SMOFF += all_func_returns,strcpy_overflow .KEEP_STATE: all: install_h .WAIT $(LIBS) include $(SRC)/lib/Makefile.targ pics/%.o: $(ASTSRC)/%.c $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< $(POST_PROCESS_O) ###################################################################### # Header file generation $(HEADERGEN:%=ast/%): $(FEATURES:%=FEATURE/%) $(MKDIR) -p $(@D) src=`echo $(@F:%.h=%) | sed 's/^ast_//'`; \ [[ $$src = dlldefs ]] && src=dll; \ $(AST_PROTO) FEATURE/$$src > $@ $(POST_PROCESS_AST) install_h: $(HEADERGEN:%=ast/%) CLOBBERFILES += ast/* _feature: FRC $(MAKE) -f Makefile.iffe generate include ../../Makefile.astmsg FRC: # # This file and its contents are supplied under the terms of the # Common Development and Distribution License ("CDDL"), version 1.0. # You may only use this file in accordance with the terms of version # 1.0 of the CDDL. # # A full copy of the text of the CDDL should have accompanied this # source. A copy of the CDDL is also available via the Internet at # http://www.illumos.org/license/CDDL. # # # Copyright 2021 OmniOS Community Edition (OmniOSce) Association. # # These macros should be kept synchronised with those in # usr/src/contrib/ast/src/lib/libdll/Makefile AST_LICENSE = since=1997,author=gsf ASTLIB= libdll ASTSRC= $(C_AST)/src/lib/$(ASTLIB) HDRGUARD= dll FEATURES= dll HEADERSRC= HEADERGEN= dlldefs.h HEADERINSTALL= $(HEADERSRC) $(HEADERGEN) LOBJDIRS= LIBOBJS= \ dlfcn.o dllopen.o dllfind.o dllplug.o dll_lib.o \ dllnext.o dlllook.o dllscan.o dllcheck.o dllerror.o # # This file and its contents are supplied under the terms of the # Common Development and Distribution License ("CDDL"), version 1.0. # You may only use this file in accordance with the terms of version # 1.0 of the CDDL. # # A full copy of the text of the CDDL should have accompanied this # source. A copy of the CDDL is also available via the Internet at # http://www.illumos.org/license/CDDL. # # # Copyright 2021 OmniOS Community Edition (OmniOSce) Association. # include ../Makefile.com include ../../Makefile.iffe cleaniffe: FRC $(RM) $(FEATURES:%=FEATURE/%) generate: cleaniffe $(FEATURES:%=FEATURE/%) /* : : generated by proto : : */ /* : : generated from contrib/ast/src/lib/libdll/features/dll by iffe version 2012-07-17 : : */ #ifndef _def_dll_dll #if !defined(__PROTO__) # if defined(__STDC__) || defined(__cplusplus) || defined(_proto) || defined(c_plusplus) # if defined(__cplusplus) # define __LINKAGE__ "C" # else # define __LINKAGE__ # endif # define __STDARG__ # define __PROTO__(x) x # define __OTORP__(x) # define __PARAM__(n,o) n # if !defined(__STDC__) && !defined(__cplusplus) # if !defined(c_plusplus) # define const # endif # define signed # define void int # define volatile # define __V_ char # else # define __V_ void # endif # else # define __PROTO__(x) () # define __OTORP__(x) x # define __PARAM__(n,o) o # define __LINKAGE__ # define __V_ char # define const # define signed # define void int # define volatile # endif # define __MANGLE__ __LINKAGE__ # if defined(__cplusplus) || defined(c_plusplus) # define __VARARG__ ... # else # define __VARARG__ # endif # if defined(__STDARG__) # define __VA_START__(p,a) va_start(p,a) # else # define __VA_START__(p,a) va_start(p) # endif # if !defined(__INLINE__) # if defined(__cplusplus) # define __INLINE__ extern __MANGLE__ inline # else # if defined(_WIN32) && !defined(__GNUC__) # define __INLINE__ __inline # endif # endif # endif #endif #if !defined(__LINKAGE__) #define __LINKAGE__ /* 2004-08-11 transition */ #endif #define _def_dll_dll 1 #define _sys_types 1 /* #include ok */ #define _hdr_dlfcn 1 /* #include ok */ #define _LIB_dl 1 /* -ldl is a library */ #define _lib_dlopen 1 /* dlopen() in default lib(s) */ #define _DLL_NEXT_PATH "/usr/lib/libc.so.1" #if defined(__MVS__) && !defined(__SUSV3) #define __SUSV3 1 #endif #include #define DLL_INFO_PREVER 0x0001 /* pre-suffix style version */ #define DLL_INFO_DOTVER 0x0002 /* post-suffix style version */ typedef unsigned long (*Dll_plugin_version_f) __PROTO__((void)); typedef int (*Dllerror_f) __PROTO__((__V_*, __V_*, int, ...)); typedef struct Dllinfo_s { char** sibling; /* sibling dirs on $PATH */ char* prefix; /* library name prefix */ char* suffix; /* library name suffix */ char* env; /* library path env var */ int flags; /* DLL_INFO_* flags */ #ifdef _DLLINFO_PRIVATE_ _DLLINFO_PRIVATE_ #endif } Dllinfo_t; typedef struct Dllnames_s { char* id; char* name; char* base; char* type; char* opts; char* path; char data[1024]; } Dllnames_t; typedef struct Dllent_s { char* path; char* name; #ifdef _DLLENT_PRIVATE_ _DLLENT_PRIVATE_ #endif } Dllent_t; typedef struct Dllscan_s { __V_* pad; #ifdef _DLLSCAN_PRIVATE_ _DLLSCAN_PRIVATE_ #endif } Dllscan_t; #if _BLD_dll && defined(__EXPORT__) #undef __MANGLE__ #define __MANGLE__ __LINKAGE__ __EXPORT__ #endif extern __MANGLE__ Dllinfo_t* dllinfo __PROTO__((void)); extern __MANGLE__ __V_* dllplugin __PROTO__((const char*, const char*, const char*, unsigned long, unsigned long*, int, char*, size_t)); extern __MANGLE__ __V_* dllplug __PROTO__((const char*, const char*, const char*, int, char*, size_t)); extern __MANGLE__ __V_* dllfind __PROTO__((const char*, const char*, int, char*, size_t)); extern __MANGLE__ Dllnames_t* dllnames __PROTO__((const char*, const char*, Dllnames_t*)); extern __MANGLE__ __V_* dll_lib __PROTO__((Dllnames_t*, unsigned long, Dllerror_f, __V_*)); extern __MANGLE__ __V_* dllmeth __PROTO__((const char*, const char*, unsigned long)); extern __MANGLE__ __V_* dllopen __PROTO__((const char*, int)); extern __MANGLE__ __V_* dllnext __PROTO__((int)); extern __MANGLE__ __V_* dlllook __PROTO__((__V_*, const char*)); extern __MANGLE__ int dllcheck __PROTO__((__V_*, const char*, unsigned long, unsigned long*)); extern __MANGLE__ unsigned long dllversion __PROTO__((__V_*, const char*)); extern __MANGLE__ char* dllerror __PROTO__((int)); extern __MANGLE__ Dllscan_t* dllsopen __PROTO__((const char*, const char*, const char*)); extern __MANGLE__ Dllent_t* dllsread __PROTO__((Dllscan_t*)); extern __MANGLE__ int dllsclose __PROTO__((Dllscan_t*)); #undef __MANGLE__ #define __MANGLE__ __LINKAGE__ #endif # # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License (the "License"). # You may not use this file except in compliance with the License. # # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE # or http://www.opensolaris.org/os/licensing. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at usr/src/OPENSOLARIS.LICENSE. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # # Copyright 2008 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # Copyright 2021 OmniOS Community Edition (OmniOSce) Association. # # Platform-specific config # Note that "HOSTTYPE" matches the value used by AT&T upstream. DLLPLATFORMCPPFLAGS= '-DHOSTTYPE="sol$(RELEASE_MINOR).i386"' include ../Makefile.com include $(SRC)/lib/Makefile.lib.64 install: all $(ROOTLIBS64) $(ROOTLINKS64) # # This file and its contents are supplied under the terms of the # Common Development and Distribution License ("CDDL"), version 1.0. # You may only use this file in accordance with the terms of version # 1.0 of the CDDL. # # A full copy of the text of the CDDL should have accompanied this # source. A copy of the CDDL is also available via the Internet at # http://www.illumos.org/license/CDDL. # # # Copyright 2021 OmniOS Community Edition (OmniOSce) Association. # include ../Makefile.iffe include $(SRC)/lib/Makefile.lib.64 # # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License (the "License"). # You may not use this file except in compliance with the License. # # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE # or http://www.opensolaris.org/os/licensing. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at usr/src/OPENSOLARIS.LICENSE. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # # Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. # Copyright 2021 OmniOS Community Edition (OmniOSce) Association. # # # MAPFILE HEADER START # # WARNING: STOP NOW. DO NOT MODIFY THIS FILE. # Object versioning must comply with the rules detailed in # # usr/src/lib/README.mapfiles # # You should not be making modifications here until you've read the most current # copy of that file. If you need help, contact a gatekeeper for guidance. # # MAPFILE HEADER END # $mapfile_version 2 SYMBOL_VERSION SUNWprivate_1.1 { global: dllerror; dllfind; dllinfo; dlllook; dllnext; dllplug; dllplugin; dllsclose; dllsopen; dllsread; local: *; };