* Harshula <harsh...@debian.org>, 2015-08-26, 02:28:
Thanks for the feedback. If you are an expert on multi-arch support, I
would really appreciate your assistance.
Not sure if I can call myself an expert, but I'll answer anyway!
libm17n-dev is marked as "Multi-Arch: same", but the following file is
architecture-dependent:
/usr/bin/m17n-config
1) My understanding was that "Multi-Arch: same" was for files that are
architecture-dependent and "Multi-Arch: foreign" was for files that are
architecture-independent. Is that correct?
More or less, yes.
2) Since m17n-config contains paths that include the <triplet>, should
m17n-config itself be placed somewhere architecture specific instead of
in /usr/bin/ ?
There is no such place for public executables. You either need to fix
the script to be identical across architectures, or remove it, or remove
the "Multi-Arch: same" annotation.
Are there some good examples of packages that are multi-arch enabled
that deal with the same issue?
Off the top of my head: #741519
Looking at the diff I sent you, fixing the script should be relative
easy:
- if test "${prefix}/lib/i386-linux-gnu" != "/usr/lib"; then
- echo "-L${prefix}/lib/i386-linux-gnu ${LIBNAME}"
+ if test "${prefix}/lib/x86_64-linux-gnu" != "/usr/lib"; then
+ echo "-L${prefix}/lib/x86_64-linux-gnu ${LIBNAME}"
/usr/lib/<triplet> is already in the linker's search path, so these -L
options are needless.
--libtool)
for name in $LIBTOOLNAME; do
- echo -n "${prefix}/lib/i386-linux-gnu/lib${name}.la "
+ echo -n "${prefix}/lib/x86_64-linux-gnu/lib${name}.la "
done;
These seems to print names of *.la files that don't exist in the first
place! I'm not sure what is this option useful for anyway. Isn't libtool
supposed to find the .la files itself? (Disclaimer: I'm fairly
libtool-ignorant.) Perhaps the --libtool option should be removed. It
doesn't seem to have any users in the archive.
3) re: https://wiki.debian.org/Multiarch/Implementation:
----------------------------------
/usr/lib -> /usr/lib/<triplet>
/usr/lib/<pkgdir> -> /usr/lib/<triplet>/<pkgdir>
/usr/include: no change
/usr/bin: no change
/usr/share: no change
/usr/sbin: no change
----------------------------------
What should happen to files in /usr/lib/debug/? Should they reside in
/usr/lib/<triplet>/debug/ ?
I don't think gdb knows about /usr/lib/<triplet>/debug.
In compat>=9, dh_strip puts separated debug symbols in a location based
on their build-id (/usr/lib/debug/.build-id/ab/cdef1234.debug). This
enables having "Multi-Arch: same" debug packages, because build-id is
different on each architecture.
--
Jakub Wilk