I am trying to track the failure of a map file connection in Solaris. A missing map file causes the following error when I try to run a self test:
$ ./cryptestcwd v ld.so.1: cryptestcwd: fatal: /export/home/cryptopp/.libs/libcryptopp.so.6: hardware capability (CA_SUNW_HW_1) unsupported: 0x4800000 [ AES SSE4.1 ] Killed
I got to this Automake rule. libcryptopp_la_LINK , which I believe is a shared object, is missing AM_LDFLAGS . AM_LDFLAGS contains the -M cryptopp.mapfile parameter.
libcryptopp_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libcryptopp_la_LDFLAGS) $(LDFLAGS) -o $@
I tried to fix it with sed after configure :
libcryptopp_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libcryptopp_la_LDFLAGS) -M cryptopp.mapfile $(LDFLAGS) -o $@
I confirmed that sed successful, but the same test fails again. When invoking commands, -M <mapfile> missing.
the manual for libtool talks about the -M arguments in Cygwin, but not in Solaris (and the discussion applies only to GCC and not to other compilers such as IBM XL C / C ++, Sun C / C ++ and LLVM Clang):
Note that you also need to make sure that standard Unix directories (e.g. / bin, / lib, / usr, / etc) are displayed in the root of the disk. This means that you must install Cygwin directly in the root directory C: / (or D: /, or E: / etc.), Instead of the recommended installation in C: / cygwin /. In addition, all file names used in the assembly system must be relative, symbolic links should not be used in source or assembly trees, and all -M * options for gcc except -MMD should be avoided.
There is no other mention of -M .
And there is no diagnosis, for example, "Removing the -M <mapfile> for Sun Linker" or "Warning: libtool does not understand the -M <mapfile> ".
My question is: libtool disard -M and its arguments for some reason?