|
Under glibc2.1, the references for crypt changed. This is apparently a problem
for a whole slew of code bases, but I'm only discussing iDirt here. You may be
familiar the following scene:
drey@spire:~/aberd/src > make Compiling generate.c... Compiling mkdata.c... Compiling utils.c... Linking Generator...utils.o: In function `my_crypt': /home/drey/aberd/src/utils.c:441: undefined reference to `crypt' make: *** [../bin/generate] Error 1OK, I'm missing a library, obviously. So we edit the Makefile: # Compiler and Compiler Flags # # -DNOCATCH in DEFINES to prevent the AutoUpdater from running. # -lcrypt in LDFLAGS for most BSD systems. # CC = gcc LDFLAGS = Ah, we're missing the -lcrypt -- back into the editor I go...
# Compiler and Compiler Flags # # -DNOCATCH in DEFINES to prevent the AutoUpdater from running. # -lcrypt in LDFLAGS for most BSD systems. # CC = gcc LDFLAGS = -lcrypt We save, and compile. Lo and behold!
drey@spire:~/aberd/src > make Linking Generator...utils.o: In function `my_crypt': /home/drey/aberd/src/utils.c:441: undefined reference to `crypt' make: *** [../bin/generate] Error 1 Hmm. Not the result we were expecting. Time to look at that Makefile again. Let's look for the code to make the generator...
# Generator (gen) Target
#
$(BIN)$(GEN): $(GENOBS)
@$(ECHO) -n 'Linking Generator...'
@$(CC) -o $(BIN)$(GEN) $(CFLAGS) $(GENOBS)
Hmm ... odd, I don't see a reference to LDFLAGS. Let's try something...
# Generator (gen) Target
#
$(BIN)$(GEN): $(GENOBS)
@$(ECHO) -n 'Linking Generator...'
@$(CC) -o $(BIN)$(GEN) $(CFLAGS) $(GENOBS) $(LDFLAGS)
Save and compile again ...
drey@spire:~/aberd/src > make Linking Generator...Stripping Binary...Done Generating World Files... Using configuration file: ../data/generate.conf Using logging file: ../data/mkdata.log . . . Now that's the kind of output we want to see! The target for the aberd daemon already contains the $(LDFLAGS) info, so we have no work to do there. At this point your iDirt should compile just fine, barring any errors in the code you may have introduced yourself. |