buildrootschalter/package/bzip2/bzip2-build-objects-twice.p...

57 lines
1.7 KiB
Diff
Raw Normal View History

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 $<