Commit 11e9c455 authored by Markos Chandras's avatar Markos Chandras Committed by Peter Korsgaard
Browse files

bzip2: Fix build system to build object files twice



Fixes build problems on MIPS

Signed-off-by: default avatarMarkos Chandras <markos.chandras@imgtec.com>
Signed-off-by: default avatarPeter Korsgaard <jacmet@sunsite.dk>
parent b713a398
Loading
Loading
Loading
Loading
+56 −0
Original line number Diff line number Diff line
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 $<