1*55d6cb5dSRichard Lowe# 2*55d6cb5dSRichard Lowe# This file and its contents are supplied under the terms of the 3*55d6cb5dSRichard Lowe# Common Development and Distribution License ("CDDL"), version 1.0. 4*55d6cb5dSRichard Lowe# You may only use this file in accordance with the terms of version 5*55d6cb5dSRichard Lowe# 1.0 of the CDDL. 6*55d6cb5dSRichard Lowe# 7*55d6cb5dSRichard Lowe# A full copy of the text of the CDDL should have accompanied this 8*55d6cb5dSRichard Lowe# source. A copy of the CDDL is also available via the Internet at 9*55d6cb5dSRichard Lowe# http://www.illumos.org/license/CDDL. 10*55d6cb5dSRichard Lowe# 11*55d6cb5dSRichard Lowe 12*55d6cb5dSRichard Lowe# Copyright 2021, Richard Lowe. 13*55d6cb5dSRichard Lowe 14*55d6cb5dSRichard LoweOBJS=visible.o hidden.o access.o 15*55d6cb5dSRichard Lowe 16*55d6cb5dSRichard LoweSRCDIR=$(PWD) 17*55d6cb5dSRichard Lowe 18*55d6cb5dSRichard Lowe.KEEP_STATE: 19*55d6cb5dSRichard Lowe 20*55d6cb5dSRichard Loweall: libnoref.so libothertest.so test 21*55d6cb5dSRichard Lowe 22*55d6cb5dSRichard Lowe%.o: $(SRCDIR)/%.s 23*55d6cb5dSRichard Lowe gcc -D_ASM -m64 -c $< -o $@ 24*55d6cb5dSRichard Lowe%.o: $(SRCDIR)/%.S 25*55d6cb5dSRichard Lowe gcc -D_ASM -m64 -c $< -o $@ 26*55d6cb5dSRichard Lowe 27*55d6cb5dSRichard Lowelibtest.so: $(OBJS) 28*55d6cb5dSRichard Lowe gcc -m64 -shared $(OBJS) -o $@ 29*55d6cb5dSRichard Lowe 30*55d6cb5dSRichard Lowe# libtest.so, but with the important objects in the other order so that we 31*55d6cb5dSRichard Lowe# choose the other COMDAT section to keep. 32*55d6cb5dSRichard Lowelibothertest.so: $(OBJS) 33*55d6cb5dSRichard Lowe gcc -m64 -shared hidden.o visible.o access.o -o $@ 34*55d6cb5dSRichard Lowe 35*55d6cb5dSRichard Lowelibnoref.so: $(OBJS:access.o=) #Remove any references 36*55d6cb5dSRichard Lowe gcc -m64 -Wl,-zignore -shared $(OBJS:access.o=) -o $@ 37*55d6cb5dSRichard Lowe 38*55d6cb5dSRichard Lowetest: $(SRCDIR)/main.c libtest.so 39*55d6cb5dSRichard Lowe gcc -m64 $(SRCDIR)/main.c -o $@ -L$(PWD) -R$(PWD) -ltest 40*55d6cb5dSRichard Lowe 41*55d6cb5dSRichard Loweclean: 42*55d6cb5dSRichard Lowe rm -rf $(OBJS) test libtest.so 43