Before all, I want to thank the FreeBSD team for this great feature: FreeBSD 64 bit is able to run and compile 32 bit applications.
Now a few impressions...
About FreeBSD multi-arch...
In FreeBSD 64 bit, to run a FreeBSD-64 bit app, the system uses /libexec/ld-elf.so.1 (that library is, of course, 64 bit).
In FreeBSD 32 bit, to run a FreeBSD-32 bit app, the system uses also /libexec/ld-elf.so.1 (and here that library is, of course, 32 bit).
But for FreeBSD multi-arch 64+32 bit, the system uses in same directory /libexec/ :
ld-elf.so.1 to run a 64 bit FreeBSD app and ld-elf32.so.1 to run a FreeBSD 32 bit application.
So, if a application was compiled on FreeBSD 32 with smart link, one of the smart-link will point to /libexec/ld-elf.so.1 (that must be 32 bit).
But with FreeBSD multi-arch, smartlink will not work because it will point to /libexec/ld-elf.so.1 in place of /libexec/ld-elf32.so.1
Why not use then (sorry, but other Unix os do it with success) the build-in multi-arch shema (that uses FreeBSD and works perfectly) ?:
/lib/libexec/ld-elf.so.1 ===> for 64 bit app
/lib32/libexec/ld-elf.so.1 ===> for 32 bit app
In that case, a 32 bit FreeBSD app with smart-link could work on a multi-arch system.
It is not criticism but a proposition to make life more confortable.
Fre;D
Now a few impressions...
About FreeBSD multi-arch...
In FreeBSD 64 bit, to run a FreeBSD-64 bit app, the system uses /libexec/ld-elf.so.1 (that library is, of course, 64 bit).
In FreeBSD 32 bit, to run a FreeBSD-32 bit app, the system uses also /libexec/ld-elf.so.1 (and here that library is, of course, 32 bit).
But for FreeBSD multi-arch 64+32 bit, the system uses in same directory /libexec/ :
ld-elf.so.1 to run a 64 bit FreeBSD app and ld-elf32.so.1 to run a FreeBSD 32 bit application.
So, if a application was compiled on FreeBSD 32 with smart link, one of the smart-link will point to /libexec/ld-elf.so.1 (that must be 32 bit).
But with FreeBSD multi-arch, smartlink will not work because it will point to /libexec/ld-elf.so.1 in place of /libexec/ld-elf32.so.1
Why not use then (sorry, but other Unix os do it with success) the build-in multi-arch shema (that uses FreeBSD and works perfectly) ?:
/lib/libexec/ld-elf.so.1 ===> for 64 bit app
/lib32/libexec/ld-elf.so.1 ===> for 32 bit app
In that case, a 32 bit FreeBSD app with smart-link could work on a multi-arch system.
It is not criticism but a proposition to make life more confortable.
Fre;D