[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#837755: liblangtag-dev: arch-dependent file in "Multi-Arch: same" package



* Rene Engelhard <rene@debian.org>, 2016-09-14, 11:31:
/usr/include/liblangtag/lt-config.h

An example diff between i386 and amd64 is attached.

OK; and the fix is to move it to /usr/include/$(DEB_HOST_MULTIARCH)/liblangtag/lt-config.h?

That should work[*], but as a first step I'd try to see if we can make the header identical across all architectures.

It looks like there are no external users of LT_POINTER_TO_INT, and liblangtag uses it for checking if two pointers are equal... Not only this is overengineered, but it's also broken on architectures where pointer is wider than int. :-\

How about the attached (untested) patch?


[*] Famous last words!

--
Jakub Wilk
--- a/configure.ac
+++ b/configure.ac
@@ -424,15 +424,6 @@
 #include <liblangtag/lt-macros.h>
 ____EOS
 
-if test -z "$unknown_sizeof_void_p"; then
-	cat >> $outfile<<____EOS
-
-#define LT_POINTER_TO_INT(p)	((int) ${ptoi_cast} (p))
-____EOS
-	else
-		echo "#error SIZEOF_VOID_P unknown"
-	fi
-
 	cat >> $outfile<<____EOS
 
 #endif /* __LT_CONFIG_H__ */
@@ -456,21 +447,6 @@
 	   lt_inline="\$lt_inline
 #define LT_HAVE__INLINE__	1"
 	fi
-
-	case $ac_cv_sizeof_void_p in
-	$ac_cv_sizeof_int)
-		ptoi_cast=''
-		;;
-	$ac_cv_sizeof_long)
-		ptoi_cast='(long)'
-		;;
-	$ac_cv_sizeof_long_long)
-		ptoi_cast='(long long)'
-		;;
-	*)
-		unknown_sizeof_void_p=yes
-		;;
-	esac
 ])
 
 AC_CONFIG_FILES([
--- a/liblangtag/lt-tag.c
+++ b/liblangtag/lt-tag.c
@@ -197,7 +197,7 @@
 _lt_tag_variant_compare(const lt_pointer_t a,
 			const lt_pointer_t b)
 {
-	return LT_POINTER_TO_INT (a) - LT_POINTER_TO_INT (b);
+	return a != b;
 }
 
 #define DEFUNC_TAG_FREE(__func__)					\

Reply to: