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