mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-10-01 06:21:56 -09:00
fixup a whole steaming pile of insanity. When packages are configured,
they should be configured with --prefix=/usr and we then need to use make DESTDIR=$(STAGING_DIR) install to get things installed into the staging directory. The current situation for many packages, which use --prefix=$(STAGING_DIR) results in the staging_dir paths getting compiled into the binary itself. This also adds in a pile of libtool fixups. Between broken pkgconfig, broken libtool handling, and broken --prefix settings, its a wonder things have worked as well as they have up till now. -Erik
This commit is contained in:
77
package/libpng/libdir-la.patch
Normal file
77
package/libpng/libdir-la.patch
Normal file
@@ -0,0 +1,77 @@
|
||||
--- libpng-1.2.12/ltmain.sh.orig 2006-06-05 09:12:42.000000000 -0600
|
||||
+++ libpng-1.2.12/ltmain.sh 2007-01-13 14:39:14.000000000 -0700
|
||||
@@ -322,8 +322,9 @@
|
||||
# line option must be used.
|
||||
if test -z "$tagname"; then
|
||||
$echo "$modename: unable to infer tagged configuration"
|
||||
- $echo "$modename: specify a tag with \`--tag'" 1>&2
|
||||
- exit $EXIT_FAILURE
|
||||
+ $echo "$modename: defaulting to \`CC'"
|
||||
+ $echo "$modename: if this is not correct, specify a tag with \`--tag'"
|
||||
+# exit $EXIT_FAILURE
|
||||
# else
|
||||
# $echo "$modename: using $tagname tagged configuration"
|
||||
fi
|
||||
@@ -2453,8 +2454,14 @@
|
||||
absdir="$abs_ladir"
|
||||
libdir="$abs_ladir"
|
||||
else
|
||||
- dir="$libdir"
|
||||
- absdir="$libdir"
|
||||
+ # Adding 'libdir' from the .la file to our library search paths
|
||||
+ # breaks crosscompilation horribly. We cheat here and don't add
|
||||
+ # it, instead adding the path where we found the .la. -CL
|
||||
+ dir="$abs_ladir"
|
||||
+ absdir="$abs_ladir"
|
||||
+ libdir="$abs_ladir"
|
||||
+ #dir="$libdir"
|
||||
+ #absdir="$libdir"
|
||||
fi
|
||||
test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
|
||||
else
|
||||
@@ -2935,6 +2942,16 @@
|
||||
esac
|
||||
if grep "^installed=no" $deplib > /dev/null; then
|
||||
path="$absdir/$objdir"
|
||||
+# This interferes with crosscompilation. -CL
|
||||
+# else
|
||||
+# eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
|
||||
+# if test -z "$libdir"; then
|
||||
+# $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
|
||||
+# exit 1
|
||||
+# fi
|
||||
+# if test "$absdir" != "$libdir"; then
|
||||
+# $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
|
||||
+# fi
|
||||
else
|
||||
eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
|
||||
if test -z "$libdir"; then
|
||||
@@ -5659,6 +5676,10 @@
|
||||
# Replace all uninstalled libtool libraries with the installed ones
|
||||
newdependency_libs=
|
||||
for deplib in $dependency_libs; do
|
||||
+ # Replacing uninstalled with installed can easily break crosscompilation,
|
||||
+ # since the installed path is generally the wrong architecture. -CL
|
||||
+ newdependency_libs="$newdependency_libs $deplib"
|
||||
+ continue
|
||||
case $deplib in
|
||||
*.la)
|
||||
name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
|
||||
@@ -6028,10 +6049,13 @@
|
||||
# At present, this check doesn't affect windows .dll's that
|
||||
# are installed into $libdir/../bin (currently, that works fine)
|
||||
# but it's something to keep an eye on.
|
||||
- if test "$inst_prefix_dir" = "$destdir"; then
|
||||
- $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
|
||||
- exit $EXIT_FAILURE
|
||||
- fi
|
||||
+ #
|
||||
+ # This breaks install into our staging area. -PB
|
||||
+ #
|
||||
+ # if test "$inst_prefix_dir" = "$destdir"; then
|
||||
+ # $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
|
||||
+ # exit $EXIT_FAILURE
|
||||
+ # fi
|
||||
|
||||
if test -n "$inst_prefix_dir"; then
|
||||
# Stick the inst_prefix_dir data into the link command.
|
||||
@@ -38,22 +38,30 @@ $(LIBPNG_DIR)/.unpacked: $(DL_DIR)/$(LIBPNG_SOURCE)
|
||||
|
||||
$(LIBPNG_DIR)/.configured: $(LIBPNG_DIR)/.unpacked
|
||||
(cd $(LIBPNG_DIR); rm -rf config.cache; \
|
||||
$(TARGET_CONFIGURE_OPTS) CC_FOR_BUILD="$(HOSTCC)" \
|
||||
$(TARGET_CONFIGURE_OPTS) \
|
||||
CFLAGS="$(TARGET_CFLAGS)" \
|
||||
./configure \
|
||||
ac_cv_func_memcmp_working=yes \
|
||||
ac_cv_have_decl_malloc=yes \
|
||||
gl_cv_func_malloc_0_nonnull=yes \
|
||||
ac_cv_func_malloc_0_nonnull=yes \
|
||||
ac_cv_func_calloc_0_nonnull=yes \
|
||||
ac_cv_func_realloc_0_nonnull=yes \
|
||||
./configure \
|
||||
--target=$(GNU_TARGET_NAME) \
|
||||
--host=$(GNU_TARGET_NAME) \
|
||||
--build=$(GNU_HOST_NAME) \
|
||||
--prefix=$(STAGING_DIR) \
|
||||
--exec_prefix=$(STAGING_DIR) \
|
||||
--libdir=$(STAGING_DIR)/lib \
|
||||
--includedir=$(STAGING_DIR)/include \
|
||||
--prefix=/usr \
|
||||
--exec-prefix=/usr \
|
||||
--bindir=/usr/bin \
|
||||
--sbindir=/usr/sbin \
|
||||
--libdir=/lib \
|
||||
--libexecdir=/usr/lib \
|
||||
--sysconfdir=/etc \
|
||||
--datadir=/usr/share \
|
||||
--localstatedir=/var \
|
||||
--includedir=/include \
|
||||
--mandir=/usr/man \
|
||||
--infodir=/usr/info \
|
||||
--without-libpng-compat \
|
||||
--without-x \
|
||||
);
|
||||
@@ -64,28 +72,20 @@ $(LIBPNG_DIR)/.compiled: $(LIBPNG_DIR)/.configured
|
||||
touch $(LIBPNG_DIR)/.compiled
|
||||
|
||||
$(STAGING_DIR)/lib/libpng.so: $(LIBPNG_DIR)/.compiled
|
||||
$(MAKE) prefix=$(STAGING_DIR) \
|
||||
exec_prefix=$(STAGING_DIR) \
|
||||
bindir=$(STAGING_DIR)/bin \
|
||||
sbindir=$(STAGING_DIR)/sbin \
|
||||
libexecdir=$(STAGING_DIR)/libexec \
|
||||
datadir=$(STAGING_DIR)/share \
|
||||
sysconfdir=$(STAGING_DIR)/etc \
|
||||
sharedstatedir=$(STAGING_DIR)/com \
|
||||
localstatedir=$(STAGING_DIR)/var \
|
||||
libdir=$(STAGING_DIR)/lib \
|
||||
includedir=$(STAGING_DIR)/include \
|
||||
oldincludedir=$(STAGING_DIR)/include \
|
||||
infodir=$(STAGING_DIR)/info \
|
||||
mandir=$(STAGING_DIR)/man \
|
||||
-C $(LIBPNG_DIR) install;
|
||||
$(MAKE) DESTDIR=$(STAGING_DIR) -C $(LIBPNG_DIR) install;
|
||||
$(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/lib\',g" $(STAGING_DIR)/lib/libpng12.la
|
||||
$(SED) "s,^prefix=.*,prefix=\'$(STAGING_DIR)\',g" \
|
||||
-e "s,^exec_prefix=.*,exec_prefix=\'$(STAGING_DIR)/usr\',g" \
|
||||
-e "s,^includedir=.*,includedir=\'$(STAGING_DIR)/include/libpng12\',g" \
|
||||
"s,^libdir=.*,libdir=\'$(STAGING_DIR)/lib\',g" \
|
||||
$(STAGING_DIR)/usr/bin/libpng12-config
|
||||
touch -c $(STAGING_DIR)/lib/libpng.so
|
||||
|
||||
$(TARGET_DIR)/usr/lib/libpng.so: $(STAGING_DIR)/lib/libpng.so
|
||||
cp -dpf $(STAGING_DIR)/lib/libpng*.so* $(TARGET_DIR)/usr/lib/
|
||||
-$(STRIP) --strip-unneeded $(TARGET_DIR)/usr/lib/libpng.so
|
||||
|
||||
png libpng: uclibc zlib $(TARGET_DIR)/usr/lib/libpng.so
|
||||
png libpng: uclibc zlib pkgconfig $(TARGET_DIR)/usr/lib/libpng.so
|
||||
|
||||
libpng-clean:
|
||||
-$(MAKE) -C $(LIBPNG_DIR) clean
|
||||
|
||||
Reference in New Issue
Block a user