0001-build-objects-twice.patch 1.66 KB
Build objects twice for shared and static libraries

The existing Makefile causes problems on MIPS because the same object
files (not compiled with -fPIC) are used in static and shared libraries.
MIPS will refuce to link non-pic objects in shared libraries.
We fix this problems by creating a new rule for the shared library
and build the shared objects as *.sho instead of *.o.
Then, we use these objects to create the shared library.

Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>

Index: bzip2-1.0.6/Makefile-libbz2_so
===================================================================
--- bzip2-1.0.6.orig/Makefile-libbz2_so
+++ bzip2-1.0.6/Makefile-libbz2_so
@@ -25,13 +25,13 @@ SHELL=/bin/sh
 CC=gcc
 override CFLAGS += -fpic -fPIC -Wall
 
-OBJS= blocksort.o  \
-      huffman.o    \
-      crctable.o   \
-      randtable.o  \
-      compress.o   \
-      decompress.o \
-      bzlib.o
+OBJS= blocksort.sho  \
+      huffman.sho    \
+      crctable.sho   \
+      randtable.sho  \
+      compress.sho   \
+      decompress.sho \
+      bzlib.sho
 
 all: $(OBJS)
 	$(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.6 $(OBJS)
@@ -45,17 +45,5 @@ install:
 clean: 
 	rm -f $(OBJS) bzip2.o libbz2.so.1.0.6 libbz2.so.1.0 bzip2-shared
 
-blocksort.o: blocksort.c
-	$(CC) $(CFLAGS) -c blocksort.c
-huffman.o: huffman.c
-	$(CC) $(CFLAGS) -c huffman.c
-crctable.o: crctable.c
-	$(CC) $(CFLAGS) -c crctable.c
-randtable.o: randtable.c
-	$(CC) $(CFLAGS) -c randtable.c
-compress.o: compress.c
-	$(CC) $(CFLAGS) -c compress.c
-decompress.o: decompress.c
-	$(CC) $(CFLAGS) -c decompress.c
-bzlib.o: bzlib.c
-	$(CC) $(CFLAGS) -c bzlib.c
+%.sho: %.c
+	$(CC) $(CFLAGS) -o $@ -c $<