Subject: | Incompatible with case-insensitive filesystems |
Trying to build Image::Filter on OS X got me:
Running Mkbootstrap for Image::Filter::Blur ()
chmod 644 Blur.bs
rm -f ../blib/arch/auto/Image/Filter/Blur/Blur.bundle
LD_RUN_PATH="/opt/local/lib" env MACOSX_DEPLOYMENT_TARGET=10.3 cc
-L/usr/local/lib -L/opt/local/lib -L/sw/lib -bundle -undefined
dynamic_lookup -fstack-protector blur.o Blur.o -o
../blib/arch/auto/Image/Filter/Blur/Blur.bundle \
-L/usr/lib -lgd -ljpeg -lpng -lm \
ld: duplicate symbol _blur_color in Blur.o and blur.o
collect2: ld returned 1 exit status
make[1]: *** [../blib/arch/auto/Image/Filter/Blur/Blur.bundle] Error 1
make: *** [subdirs] Error 2
This is likely due to Blur.xs and blur.c both producing .o files which
wind up overwriting each other on the case-insensitive by default OS X
file system. Building it on a case-sensitive disk image worked fine.
The simple solution is to prefix all the foo.c and foo.h files, or
incorporate their code into the Foo.xs file.