INSTALL: clarify 386 and no-sse2 options.
authorAndy Polyakov <appro@openssl.org>
Sun, 20 Nov 2016 20:52:41 +0000 (21:52 +0100)
committerAndy Polyakov <appro@openssl.org>
Fri, 25 Nov 2016 16:36:36 +0000 (17:36 +0100)
Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(cherry picked from commit 5ae5dc96610f0a598dac9d2f267b5c0ddd77b2e4)

Configure
INSTALL

index 404cea7cb3916823c3b1ba0523794640e644eab3..aee7cc3fc9cf366ca116b567faedebbd436b2294 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -59,11 +59,12 @@ my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [-Dxxx] [-lx
 # zlib-dynamic Like "zlib", but the zlib library is expected to be a shared
 #              library and will be loaded in run-time by the OpenSSL library.
 # sctp          include SCTP support
-# 386           generate 80386 code
 # enable-weak-ssl-ciphers
 #               Enable weak ciphers that are disabled by default. This currently
 #               only includes RC4 based ciphers.
-# no-sse2      disables IA-32 SSE2 code, above option implies no-sse2
+# 386           generate 80386 code in assembly modules
+# no-sse2       disables IA-32 SSE2 code in assembly modules, the above
+#               mentioned '386' option implies this one
 # no-<cipher>   build without specified algorithm (rsa, idea, rc5, ...)
 # -<xxx> +<xxx> compiler options are passed through
 # -static       while -static is also a pass-through compiler option (and
diff --git a/INSTALL b/INSTALL
index d549f7bd5fe04bfee94eba420919b3d2f63b82cd..61b13c4642489627089a16a1dfb6dfca62ffe822 100644 (file)
--- a/INSTALL
+++ b/INSTALL
                    Don't build SRTP support
 
   no-sse2
-                   Exclude SSE2 code paths. Normally SSE2 extension is
-                   detected at run-time, but the decision whether or not the
-                   machine code will be executed is taken solely on CPU
-                   capability vector. This means that if you happen to run OS
-                   kernel which does not support SSE2 extension on Intel P4
-                   processor, then your application might be exposed to
-                   "illegal instruction" exception. There might be a way
-                   to enable support in kernel, e.g. FreeBSD kernel can be
-                   compiled with CPU_ENABLE_SSE, and there is a way to
-                   disengage SSE2 code paths upon application start-up,
-                   but if you aim for wider "audience" running such kernel,
-                   consider no-sse2. Both the 386 and no-asm options imply
-                   no-sse2.
+                   Exclude SSE2 code paths from 32-bit x86 assembly modules.
+                   Normally SSE2 extension is detected at run-time, but the
+                   decision whether or not the machine code will be executed
+                   is taken solely on CPU capability vector. This means that
+                   if you happen to run OS kernel which does not support SSE2
+                   extension on Intel P4 processor, then your application
+                   might be exposed to "illegal instruction" exception.
+                   There might be a way to enable support in kernel, e.g.
+                   FreeBSD kernel can  be compiled with CPU_ENABLE_SSE, and
+                   there is a way to disengage SSE2 code paths upon application
+                   start-up, but if you aim for wider "audience" running
+                   such kernel, consider no-sse2. Both the 386 and
+                   no-asm options imply no-sse2.
 
   enable-ssl-trace
                    Build with the SSL Trace capabilities (adds the "-trace"
                    where loading of shared libraries is supported.
 
   386
-                   On Intel hardware, use the 80386 instruction set only
-                   (the default x86 code is more efficient, but requires at
-                   least a 486). Note: Use compiler flags for any other CPU
-                   specific configuration, e.g. "-m32" to build x86 code on
-                   an x64 system.
+                   In 32-bit x86 builds, when generating assembly modules,
+                   use the 80386 instruction set only (the default x86 code
+                   is more efficient, but requires at least a 486). Note:
+                   This doesn't affect code generated by compiler, you're
+                   likely to complement configuration command line with
+                   suitable compiler-specific option.
 
   no-<prot>
                    Don't build support for negotiating the specified SSL/TLS
                    These system specific options will be passed through to the
                    compiler to allow you to define preprocessor symbols, specify
                    additional libraries, library directories or other compiler
-                   options.
+                   options. It might be worth noting that some compilers
+                   generate code specifically for processor the compiler
+                   currently executes on. This is not necessarily what you might
+                   have in mind, since it might be unsuitable for execution on
+                   other, typically older, processor. Consult your compiler
+                   documentation.
 
 
  Installation in Detail