You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Bump version to Crypto++ 8.1
* Remove Android restrictions
* Add use of AC_CANONICAL_BUILD
* Use $build instead of $host
* Use $CXXFLAGS when determining $COMPILER_TARGET
* Do not use $ac_srcdir because it is broke
Cross-compiles like Android are still broke, but it is an Autotool problem. I wish those assholes would fix their broken shit.
Copy file name to clipboardExpand all lines: README.md
+26-1
Original file line number
Diff line number
Diff line change
@@ -76,7 +76,7 @@ You may also need `libltdl-dev` on Debian and Ubuntu; and may need `libtool-ltdl
76
76
If working on the GCC Compile Farm then you may need exta steps for systems like AIX. AIX offers updated Autoconf and Automake in `/opt/freeware/bin/`; and offers Libtool in `/opt/cfarm/libtool-2.4.2/bin/`. Both `bin/` need to be on path. When running `autoreconf` you must `autoreconf --force --install --include=/opt/cfarm/libtool-2.4.2/share/aclocal/`.
77
77
78
78
# Integration
79
-
The Autotools submodule integrates with the Crypto++ library. The submodule removes the library's `GNUmakefile` and `GNUmakefile-cross`. In the future we plan to overwrite the library's `config.h` and produce a n installation specific `config.h`.
79
+
The Autotools submodule integrates with the Crypto++ library. The submodule removes the library's `GNUmakefile` and `GNUmakefile-cross`. In the future we plan to overwrite the library's `config.h` and produce an installation specific `config.h`.
80
80
81
81
The library's `GNUmakefile` and `GNUmakefile-cross` were modified to clean the artifacts produced by Autotools. To clean the directory after running Autotools perform a `git checkout GNUmakefile` followed by a `make -f GNUmakefile distclean`.
82
82
@@ -89,6 +89,31 @@ If you want to use `cryptest-autotools.sh` to drive things then perform the foll
89
89
cp TestScripts/cryptest-autotools.sh .
90
90
./cryptest-autotools.sh
91
91
92
+
# Cross-compiles
93
+
94
+
Cross-compiles are mostly broken due to Autotools. The biggest problem seems to be Autotools inability to honor a C++ project settings. Using Android as an example:
95
+
96
+
*`configure.ac` sets `AC_PROG_CXX`
97
+
*`configure.ac` sets `AC_LANG([C++])`
98
+
* User sets `CXX=/opt/android-ndk-r19c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++`
99
+
* User sets `LD=/opt/android-ndk-r19c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++`
100
+
* User sets `CXXFLAGS="-target armv7-none-linux-androideabi21 ...`
101
+
* User sets `LDFLAGS="-Wl,-target=armv7-none-linux-androideabi21 ...`
102
+
* User invokes `./configure --host=$(config.guess) --build=armv7-none-linux-androideabi21`
103
+
104
+
Autotools will perform a test using the host's gcc and fail with:
105
+
106
+
```
107
+
configure:3481: checking whether the C compiler works
Autotools absolutely sucks. The maintainers have had 30 years to get it right and their shit is still broken.
116
+
92
117
# Collaboration
93
118
We would like all distro maintainers to be collaborators on this repo. If you are a distro maintainer then please contact us so we can send you an invite.
0 commit comments