12 #
13 # When distributing Covered Code, include this CDDL HEADER in each
14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 # If applicable, add the following below this CDDL HEADER, with the
16 # fields enclosed by brackets "[]" replaced with your own identifying
17 # information: Portions Copyright [yyyy] [name of copyright owner]
18 #
19 # CDDL HEADER END
20 #
21
22 #
23 # Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved.
24 # Copyright (c) 2018, Joyent, Inc.
25 # Copyright 2019 OmniOS Community Edition (OmniOSce) Association.
26 #
27
28 RTLD= ld.so.1
29
30 AVLOBJ= avl.o
31 DTROBJ= dtrace_data.o
32 TOOLOBJS= alist.o strhash.o
33 BLTOBJ= msg.o
34 ELFCAPOBJ= elfcap.o
35 OBJECTS= $(BLTOBJ) \
36 $(AVLOBJ) \
37 $(DTROBJ) \
38 $(TOOLOBJS) \
39 $(ELFCAPOBJ) \
40 $(P_ASOBJS) $(P_COMOBJS) $(P_MACHOBJS) $(G_MACHOBJS) \
41 $(S_ASOBJS) $(S_COMOBJS) $(S_MACHOBJS) $(CP_MACHOBJS)
42
43 COMOBJS= $(P_COMOBJS) $(S_COMOBJS)
44 ASOBJS= $(P_ASOBJS) $(S_ASOBJS)
45 MACHOBJS= $(P_MACHOBJS) $(S_MACHOBJS)
46 NOCTFOBJS= $(ASOBJS)
47
48 include $(SRC)/lib/Makefile.lib
49 include $(SRC)/cmd/sgs/Makefile.com
50
51 SRCDIR = ../common
52 ELFCAP = $(SRC)/common/elfcap
53 PLAT = $(VAR_PLAT_$(BASEPLAT))
54
55 # DTrace needs an executable data segment.
56 MAPFILE.NED=
57
58 MAPFILES += $(MAPFILE-ORDER)
59
60 # For the libc/libthread unified world:
61 # This library needs to be placed in /lib to allow
62 # dlopen() functionality while in single-user mode.
63 ROOTFS_DYNLIB= $(RTLD:%=$(ROOTFS_LIBDIR)/%)
64 ROOTFS_DYNLIB64= $(RTLD:%=$(ROOTFS_LIBDIR64)/%)
65
66 # For the libc/libthread separated world:
67 # A version of this library needs to be placed in /etc/lib to allow
68 # dlopen() functionality while in single-user mode.
69 ETCLIBDIR= $(ROOT)/etc/lib
70 ETCDYNLIB= $(RTLD:%=$(ETCLIBDIR)/%)
71
72 ROOTDYNLIB= $(RTLD:%=$(ROOTFS_LIBDIR)/%)
73 ROOTDYNLIB64= $(RTLD:%=$(ROOTFS_LIBDIR64)/%)
74
75
76 FILEMODE = 755
77
78 CPPFLAGS += -I$(SRCBASE)/lib/libc/inc \
79 -I$(SRCBASE)/uts/common/krtld \
80 -I$(SRCBASE)/uts/$(PLAT) \
81 -I$(SRCBASE)/uts/$(PLAT)/krtld \
82 -I$(SRC)/common/sgsrtcid \
83 -I$(ELFCAP) \
84 $(CPPFEATUREMACROS)
85
86 ASFLAGS= -P -D_ASM $(CPPFLAGS)
87 LDLIB = -L ../../libld/$(MACH)
88 RTLDLIB = -L ../../librtld/$(MACH)
89
90 CERRWARN += -_gcc=-Wno-uninitialized
91 CERRWARN += -_gcc=-Wno-unused-variable
92 CERRWARN += -_gcc=-Wno-switch
93
94 # not linted
95 SMATCH=off
96
97 # These definitions require that libc be built in the same workspace
98 # as the run-time linker and before the run-time linker is built.
99 # This is required for the system's self-consistency in any case.
100 CPICLIB = $(VAR_RTLD_CPICLIB)
101 CPICLIB64 = $(VAR_RTLD_CPICLIB64)
102 CLIB = -lc_pic
103
104 LDLIBS += $(CONVLIBDIR) $(CONV_LIB) \
105 $(CPICLIB) $(CLIB) \
106 $(LDDBGLIBDIR) $(LDDBG_LIB) \
107 $(RTLDLIB) -lrtld \
108 $(LDLIB) $(LD_LIB)
109
110 DYNFLAGS += -i -e _rt_boot $(VERSREF) $(ZNODLOPEN) \
111 $(ZINTERPOSE) -zdtrace=dtrace_data '-R$$ORIGIN'
112
113 BUILD.s= $(AS) $(ASFLAGS) $< -o $@
114
115 BLTDEFS= msg.h
116 BLTDATA= msg.c
117 BLTMESG= $(SGSMSGDIR)/rtld
118
119 BLTFILES= $(BLTDEFS) $(BLTDATA) $(BLTMESG)
120
121 SGSMSGCOM= ../common/rtld.msg
122 SGSMSG32= ../common/rtld.32.msg
123 SGSMSG64= ../common/rtld.64.msg
124 SGSMSGSPARC= ../common/rtld.sparc.msg
125 SGSMSGSPARC32= ../common/rtld.sparc32.msg
126 SGSMSGSPARC64= ../common/rtld.sparc64.msg
127 SGSMSGINTEL= ../common/rtld.intel.msg
128 SGSMSGINTEL32= ../common/rtld.intel32.msg
129 SGSMSGINTEL64= ../common/rtld.intel64.msg
130 SGSMSGCHK= ../common/rtld.chk.msg
131 SGSMSGTARG= $(SGSMSGCOM)
132 SGSMSGALL= $(SGSMSGCOM) $(SGSMSG32) $(SGSMSG64) \
133 $(SGSMSGSPARC) $(SGSMSGSPARC32) $(SGSMSGSPARC64) \
134 $(SGSMSGINTEL) $(SGSMSGINTEL32) $(SGSMSGINTEL64)
135
136 SGSMSGFLAGS1= $(SGSMSGFLAGS) -m $(BLTMESG)
137 SGSMSGFLAGS2= $(SGSMSGFLAGS) -h $(BLTDEFS) -d $(BLTDATA) -n rtld_msg
138
139 SRCS= $(AVLOBJ:%.o=$(VAR_AVLDIR)/%.c) \
140 $(DTROBJ:%.o=$(VAR_DTRDIR)/%.c) \
141 $(TOOLOBJS:%.o=$(SGSTOOLS)/common/%.c) \
142 $(COMOBJS:%.o=../common/%.c) $(MACHOBJS:%.o=%.c) $(BLTDATA) \
143 $(G_MACHOBJS:%.o=$(SRCBASE)/uts/$(PLAT)/krtld/%.c) \
144 $(CP_MACHOBJS:%.o=../$(MACH)/%.c) \
145 $(ASOBJS:%.o=%.s)
146
147 CLEANFILES += $(CRTS) $(BLTFILES)
148 CLOBBERFILES += $(RTLD)
|
12 #
13 # When distributing Covered Code, include this CDDL HEADER in each
14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 # If applicable, add the following below this CDDL HEADER, with the
16 # fields enclosed by brackets "[]" replaced with your own identifying
17 # information: Portions Copyright [yyyy] [name of copyright owner]
18 #
19 # CDDL HEADER END
20 #
21
22 #
23 # Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved.
24 # Copyright (c) 2018, Joyent, Inc.
25 # Copyright 2019 OmniOS Community Edition (OmniOSce) Association.
26 #
27
28 RTLD= ld.so.1
29
30 AVLOBJ= avl.o
31 DTROBJ= dtrace_data.o
32 SGSCOMMONOBJ= alist.o strhash.o
33 BLTOBJ= msg.o
34 ELFCAPOBJ= elfcap.o
35 OBJECTS= $(BLTOBJ) \
36 $(AVLOBJ) \
37 $(DTROBJ) \
38 $(SGSCOMMONOBJ) \
39 $(ELFCAPOBJ) \
40 $(P_ASOBJS) $(P_COMOBJS) $(P_MACHOBJS) $(G_MACHOBJS) \
41 $(S_ASOBJS) $(S_COMOBJS) $(S_MACHOBJS) $(CP_MACHOBJS)
42
43 COMOBJS= $(P_COMOBJS) $(S_COMOBJS)
44 ASOBJS= $(P_ASOBJS) $(S_ASOBJS)
45 MACHOBJS= $(P_MACHOBJS) $(S_MACHOBJS)
46 NOCTFOBJS= $(ASOBJS)
47
48 include $(SRC)/lib/Makefile.lib
49 include $(SRC)/cmd/sgs/Makefile.com
50
51 SRCDIR = ../common
52 ELFCAP = $(SRC)/common/elfcap
53 PLAT = $(VAR_PLAT_$(BASEPLAT))
54
55 # DTrace needs an executable data segment.
56 MAPFILE.NED=
57
58 MAPFILES += $(MAPFILE-ORDER)
59
60 # For the libc/libthread unified world:
61 # This library needs to be placed in /lib to allow
62 # dlopen() functionality while in single-user mode.
63 ROOTFS_DYNLIB= $(RTLD:%=$(ROOTFS_LIBDIR)/%)
64 ROOTFS_DYNLIB64= $(RTLD:%=$(ROOTFS_LIBDIR64)/%)
65
66 # For the libc/libthread separated world:
67 # A version of this library needs to be placed in /etc/lib to allow
68 # dlopen() functionality while in single-user mode.
69 ETCLIBDIR= $(ROOT)/etc/lib
70 ETCDYNLIB= $(RTLD:%=$(ETCLIBDIR)/%)
71
72 ROOTDYNLIB= $(RTLD:%=$(ROOTFS_LIBDIR)/%)
73 ROOTDYNLIB64= $(RTLD:%=$(ROOTFS_LIBDIR64)/%)
74
75
76 FILEMODE = 755
77
78 CPPFLAGS += -I$(SRC)/lib/libc/inc \
79 -I$(SRC)/uts/common/krtld \
80 -I$(SRC)/uts/$(PLAT) \
81 -I$(SRC)/uts/$(PLAT)/krtld \
82 -I$(SRC)/common/sgsrtcid \
83 -I$(ELFCAP) \
84 $(CPPFEATUREMACROS)
85
86 ASFLAGS= -P -D_ASM $(CPPFLAGS)
87 LDLIB = -L ../../libld/$(MACH)
88 RTLDLIB = -L ../../librtld/$(MACH)
89
90 CERRWARN += -_gcc=-Wno-uninitialized
91 CERRWARN += -_gcc=-Wno-unused-variable
92 CERRWARN += -_gcc=-Wno-switch
93
94 # not linted
95 SMATCH=off
96
97 # These definitions require that libc be built in the same workspace
98 # as the run-time linker and before the run-time linker is built.
99 # This is required for the system's self-consistency in any case.
100 CPICLIB = $(VAR_RTLD_CPICLIB)
101 CPICLIB64 = $(VAR_RTLD_CPICLIB64)
102 CLIB = -lc_pic
103
104 LDLIBS += $(CONVLIBDIR) -lconv \
105 $(CPICLIB) $(CLIB) \
106 $(LDDBGLIBDIR) -llddbg \
107 $(RTLDLIB) -lrtld \
108 $(LDLIB) -lld
109
110 DYNFLAGS += -i -e _rt_boot $(VERSREF) $(ZNODLOPEN) \
111 $(ZINTERPOSE) -zdtrace=dtrace_data '-R$$ORIGIN'
112
113 BUILD.s= $(AS) $(ASFLAGS) $< -o $@
114
115 BLTDEFS= msg.h
116 BLTDATA= msg.c
117 BLTMESG= $(SGSMSGDIR)/rtld
118
119 BLTFILES= $(BLTDEFS) $(BLTDATA) $(BLTMESG)
120
121 SGSMSGCOM= ../common/rtld.msg
122 SGSMSG32= ../common/rtld.32.msg
123 SGSMSG64= ../common/rtld.64.msg
124 SGSMSGSPARC= ../common/rtld.sparc.msg
125 SGSMSGSPARC32= ../common/rtld.sparc32.msg
126 SGSMSGSPARC64= ../common/rtld.sparc64.msg
127 SGSMSGINTEL= ../common/rtld.intel.msg
128 SGSMSGINTEL32= ../common/rtld.intel32.msg
129 SGSMSGINTEL64= ../common/rtld.intel64.msg
130 SGSMSGCHK= ../common/rtld.chk.msg
131 SGSMSGTARG= $(SGSMSGCOM)
132 SGSMSGALL= $(SGSMSGCOM) $(SGSMSG32) $(SGSMSG64) \
133 $(SGSMSGSPARC) $(SGSMSGSPARC32) $(SGSMSGSPARC64) \
134 $(SGSMSGINTEL) $(SGSMSGINTEL32) $(SGSMSGINTEL64)
135
136 SGSMSGFLAGS1= $(SGSMSGFLAGS) -m $(BLTMESG)
137 SGSMSGFLAGS2= $(SGSMSGFLAGS) -h $(BLTDEFS) -d $(BLTDATA) -n rtld_msg
138
139 SRCS= $(AVLOBJ:%.o=$(VAR_AVLDIR)/%.c) \
140 $(DTROBJ:%.o=$(VAR_DTRDIR)/%.c) \
141 $(SGSCOMMONOBJ:%.o=$(SGSCOMMON)/%.c) \
142 $(COMOBJS:%.o=../common/%.c) $(MACHOBJS:%.o=%.c) $(BLTDATA) \
143 $(G_MACHOBJS:%.o=$(SRC)/uts/$(PLAT)/krtld/%.c) \
144 $(CP_MACHOBJS:%.o=../$(MACH)/%.c) \
145 $(ASOBJS:%.o=%.s)
146
147 CLEANFILES += $(CRTS) $(BLTFILES)
148 CLOBBERFILES += $(RTLD)
|