[Cluster-devel] [PATCH] Fix libdlm static build

Christine Caulfield ccaulfie at redhat.com
Thu Jul 3 13:06:06 UTC 2008


Fabio M. Di Nitto wrote:
> 
> Hi David,
> 
> the objects included in the static version of dlm are different from the 
> one in the shared lib. This is generally wrong as they should be the same.
> 
> the patch addresses the problem by killing .po files in favour of more 
> common .o and changing the linking targets.
> 
> the patch applies to both master and stable2. rhel branches are also 
> affected by other problems (_lt is linked to pthread) but i don't think 
> it's wise to change it.
> 
> Please review and apply.
> 
> Thanks
> Fabio
> 
> diff --git a/dlm/libdlm/Makefile b/dlm/libdlm/Makefile
> index 0cc1f7b..734eaa9 100644
> --- a/dlm/libdlm/Makefile
> +++ b/dlm/libdlm/Makefile
> @@ -42,26 +42,20 @@ $(TARGET)_lt.a: $(TARGET)_lt.o
>      ${AR} cru $@ $^
>      ${RANLIB} $@
> 
> -$(TARGET).so.${SOMAJOR}.${SOMINOR}: $(TARGET).po $(AISTARGET).po
> +$(TARGET).so.${SOMAJOR}.${SOMINOR}: $(TARGET).o $(AISTARGET).o
>      $(CC) -shared -o $@ -Wl,-soname=$(TARGET).so.$(SOMAJOR) $< 
> $(PTHREAD_LDFLAGS) $(LDFLAGS)
>      ln -sf $(TARGET).so.$(SOMAJOR).$(SOMINOR) $(TARGET).so
>      ln -sf $(TARGET).so.$(SOMAJOR).$(SOMINOR) $(TARGET).so.$(SOMAJOR)
> 
> -$(TARGET)_lt.so.${SOMAJOR}.${SOMINOR}: $(TARGET)_lt.po
> +$(TARGET)_lt.so.${SOMAJOR}.${SOMINOR}: $(TARGET)_lt.o
>      $(CC) -shared -o $@ -Wl,-soname=$(TARGET)_lt.so.$(SOMAJOR) $< 
> $(LDFLAGS)
>      ln -sf $(TARGET)_lt.so.$(SOMAJOR).$(SOMINOR) $(TARGET)_lt.so
>      ln -sf $(TARGET)_lt.so.$(SOMAJOR).$(SOMINOR) 
> $(TARGET)_lt.so.$(SOMAJOR)
> 
>  %_lt.o: $(S)/%.c
> -    $(CC) $(CFLAGS) -c -o $@ $<
> -
> -%_lt.po: $(S)/%.c
>      $(CC) $(CFLAGS) -fPIC -c -o $@ $<
> 
>  %.o: $(S)/%.c
> -    $(CC) $(CFLAGS) -D_REENTRANT -c -o $@ $<
> -
> -%.po: $(S)/%.c
>      $(CC) $(CFLAGS) -fPIC -D_REENTRANT -c -o $@ $<
> 
>  clean: generalclean
> 

I don't understand the problem you are trying to fix here. Having PIC 
objects in the dynamic library and non-PIC in the static is perfectly 
standard practice.

-- 

Chrissie




More information about the Cluster-devel mailing list