|
Message-ID: <20200724143356.GA879655@port70.net> Date: Fri, 24 Jul 2020 16:33:56 +0200 From: Szabolcs Nagy <nsz@...t70.net> To: Érico Rolim <ericonr@...root.org> Cc: musl@...ts.openwall.com Subject: Re: [PATCH] Makefile: fix src/api compilation. * Érico Rolim <ericonr@...root.org> [2020-07-23 00:44:33 -0300]: > Adding all .o files in src/api to the api/main.OBJ variable led to them > being included twice when linking api/main.exe, which failed with a > double definition of the main() function. This can be tested by removing > the failing definitions from unistdc.c and running make. thanks. > --- > > This is a patch for libc-test. > > Makefile | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/Makefile b/Makefile > index 86b6ff5..683c850 100644 > --- a/Makefile > +++ b/Makefile > @@ -113,7 +113,6 @@ $(B)/common/mtest.o: src/common/mtest.h > $(math.OBJS): src/common/mtest.h > > $(B)/api/main.exe: $(api.OBJS) > -api/main.OBJS:=$(api.OBJS) > $(api.OBJS):$(B)/common/options.h > $(api.OBJS):CFLAGS+=-pedantic-errors -Werror -Wno-unused -D_XOPEN_SOURCE=700 this is not the right fix, the problem is that api/main.o is duplicated: once because of the %.exe: %.o rule and once in the api/main.OBJS. but all other api/*.o files are not duplicated and should be linked (so we link test all referenced symbols not just include header test). i'm considering doing $(B)/%.exe: $(B)/%.o - $(CC) $(LDFLAGS) $($*.LDFLAGS) -o $@ $< $($*.OBJS) $(LDLIBS) $($*.LDLIBS) 2>$@....err || echo BUILDERROR $@; cat $@....err + $(CC) $(LDFLAGS) $($*.LDFLAGS) -o $@ $(sort $< $($*.OBJS)) $(LDLIBS) $($*.LDLIBS) 2>$@....err || echo BUILDERROR $@; cat $@....err (note: the make sort function removes duplicates)
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.