Closed TuringZhu closed 1 year ago
Centos 6.8 seems to come with gcc 4.4. I think you need at least 4.7 for those instructions.
OK, thanks.
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Centos 6.8 seems to come with gcc 4.4. I think you need at least 4.7 for those instructions.
It might be possible to reduce the minimum version of GCC required now that we've removed all the C++ code and given that we've removed a huge amount of C code. I would review and probably accept (but probably won't write) PRs that get ring compiling on older versions of GCC, as long as they don't introduce ugly hacks.
However, I think the problem here is that the version of binutils on this system is too old. What version of binutils (especially gas
) do you have? Unlike the GCC case, I think it's probably unreasonable to expect ring to build with ancient binutils.
edit: never mind, figured out how to get gcc 4.7 on to centos 6 while keeping glibc 2.12.
sent email
A lot of our customers are still using 6.x in production.
Email me: brian@briansmith.org.
wow, I indented to close this issue because of the following reason, while briansmith said that some customers are still using 6.x. I build success on CentOS7 with gcc 4.8.x . So, I think it it the problem of my environment and there is a description on README to say that just support gcc >= 4.8. (I)
GNU Binutils: GNU ld version 2.20.51.0.2-5.44.el6 20100205
glibc:
$ /lib64/libc.so.6
GNU C Library stable release version 2.12, by Roland McGrath et al.
Compiled by GNU CC version 4.4.7 20120313 (Red Hat 4.4.7-18).
Compiled on a Linux 2.6.32 system on 2017-06-20.
Available extensions:
The C stubs add-on version 2.1.2.
crypt add-on version 2.1 by Michael Glad and others
GNU Libidn by Simon Josefsson
Native POSIX Threads Library by Ulrich Drepper et al
BIND-8.2.3-T5B
RT using linux kernel aio
libc ABIs: UNIQUE IFUNC
Can't compile on Centos 6.10 too, i'm installed gcc 7.3.0, but result is the same
running "/usr/local/bin/gcc" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-m64" "-I" "include" "-Wall" "-Wextra" "-pedantic" "-pedantic-errors" "-Wall" "-Wextra" "-Wcast-align" "-Wcast-qual" "-Wenum-compare" "-Wfloat-equal" "-Wformat=2" "-Winline" "-Winvalid-pch" "-Wmissing-declarations" "-Wmissing-field-initializers" "-Wmissing-include-dirs" "-Wredundant-decls" "-Wshadow" "-Wsign-compare" "-Wundef" "-Wuninitialized" "-Wwrite-strings" "-fno-strict-aliasing" "-fvisibility=hidden" "-Wno-cast-align" "-fstack-protector" "-g3" "-D_XOPEN_SOURCE=700" "-c" "-o/home/diabolo/src/bbs/db-service/target/debug/build/ring-9722ad3ff62f479f/out/x86_64-mont-elf.o" "/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S"
--- stderr
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S: Assembler messages:
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:962: Error: no such instruction: `mulxq 0(%rsi),%r8,%rax'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:963: Error: no such instruction: `mulxq 8(%rsi),%r11,%r14'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:966: Error: no such instruction: `mulxq 16(%rsi),%r12,%r13'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:974: Error: no such instruction: `mulxq 24(%rsi),%rax,%r14'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:977: Error: no such instruction: `adcxq %rax,%r13'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:978: Error: no such instruction: `adcxq %rbp,%r14'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:980: Error: no such instruction: `mulxq 0(%rcx),%rax,%r10'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:981: Error: no such instruction: `adcxq %rax,%rdi'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:982: Error: no such instruction: `adoxq %r11,%r10'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:983: Error: no such instruction: `mulxq 8(%rcx),%rax,%r11'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:984: Error: no such instruction: `adcxq %rax,%r10'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:985: Error: no such instruction: `adoxq %r12,%r11'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:989: Error: no such instruction: `adcxq %rax,%r11'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:990: Error: no such instruction: `adoxq %r13,%r12'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:991: Error: no such instruction: `mulxq 24(%rcx),%rax,%r15'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:994: Error: no such instruction: `adcxq %rax,%r12'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:995: Error: no such instruction: `adoxq %rbp,%r15'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1003: Error: no such instruction: `adcxq %rbp,%r15'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1004: Error: no such instruction: `mulxq 0(%rsi),%r10,%rax'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1005: Error: no such instruction: `adcxq %r14,%r10'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1006: Error: no such instruction: `mulxq 8(%rsi),%r11,%r14'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1007: Error: no such instruction: `adcxq %rax,%r11'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1008: Error: no such instruction: `mulxq 16(%rsi),%r12,%rax'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1009: Error: no such instruction: `adcxq %r14,%r12'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1010: Error: no such instruction: `mulxq 24(%rsi),%r13,%r14'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1013: Error: no such instruction: `adcxq %rax,%r13'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1014: Error: no such instruction: `adcxq %rbp,%r14'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1018: Error: no such instruction: `adoxq %r15,%r10'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1019: Error: no such instruction: `mulxq 0(%rcx),%rax,%r15'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1020: Error: no such instruction: `adcxq %rax,%r10'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1021: Error: no such instruction: `adoxq %r15,%r11'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1022: Error: no such instruction: `mulxq 8(%rcx),%rax,%r15'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1023: Error: no such instruction: `adcxq %rax,%r11'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1024: Error: no such instruction: `adoxq %r15,%r12'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1025: Error: no such instruction: `mulxq 16(%rcx),%rax,%r15'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1027: Error: no such instruction: `adcxq %rax,%r12'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1029: Error: no such instruction: `adoxq %r15,%r13'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1030: Error: no such instruction: `mulxq 24(%rcx),%rax,%r15'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1033: Error: no such instruction: `adcxq %rax,%r13'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1034: Error: no such instruction: `adoxq %rbp,%r15'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1058: Error: no such instruction: `mulxq 0(%rsi),%r8,%r11'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1061: Error: no such instruction: `mulxq 8(%rsi),%r14,%r12'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1062: Error: no such instruction: `adoxq -32(%rbx),%r8'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1063: Error: no such instruction: `adcxq %r14,%r11'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1064: Error: no such instruction: `mulxq 16(%rsi),%r15,%r13'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1065: Error: no such instruction: `adoxq -24(%rbx),%r11'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1066: Error: no such instruction: `adcxq %r15,%r12'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1067: Error: no such instruction: `adoxq -16(%rbx),%r12'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1068: Error: no such instruction: `adcxq %rbp,%r13'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1069: Error: no such instruction: `adoxq %rbp,%r13'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1076: Error: no such instruction: `mulxq 24(%rsi),%rax,%r14'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1078: Error: no such instruction: `adcxq %rax,%r13'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1079: Error: no such instruction: `adoxq -8(%rbx),%r13'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1080: Error: no such instruction: `adcxq %rbp,%r14'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1082: Error: no such instruction: `adoxq %rbp,%r14'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1084: Error: no such instruction: `mulxq 0(%rcx),%rax,%r10'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1085: Error: no such instruction: `adcxq %rax,%r15'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1086: Error: no such instruction: `adoxq %r11,%r10'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1087: Error: no such instruction: `mulxq 8(%rcx),%rax,%r11'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1088: Error: no such instruction: `adcxq %rax,%r10'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1089: Error: no such instruction: `adoxq %r12,%r11'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1090: Error: no such instruction: `mulxq 16(%rcx),%rax,%r12'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1092: Error: no such instruction: `adcxq %rax,%r11'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1093: Error: no such instruction: `adoxq %r13,%r12'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1094: Error: no such instruction: `mulxq 24(%rcx),%rax,%r15'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1098: Error: no such instruction: `adcxq %rax,%r12'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1099: Error: no such instruction: `adoxq %rbp,%r15'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1107: Error: no such instruction: `mulxq 0(%rsi),%r10,%rax'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1108: Error: no such instruction: `adcxq %rbp,%r15'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1109: Error: no such instruction: `adoxq %r14,%r10'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1110: Error: no such instruction: `mulxq 8(%rsi),%r11,%r14'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1111: Error: no such instruction: `adcxq 0(%rbx),%r10'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1112: Error: no such instruction: `adoxq %rax,%r11'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1113: Error: no such instruction: `mulxq 16(%rsi),%r12,%rax'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1114: Error: no such instruction: `adcxq 8(%rbx),%r11'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1115: Error: no such instruction: `adoxq %r14,%r12'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1116: Error: no such instruction: `mulxq 24(%rsi),%r13,%r14'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1118: Error: no such instruction: `adcxq 16(%rbx),%r12'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1119: Error: no such instruction: `adoxq %rax,%r13'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1120: Error: no such instruction: `adcxq 24(%rbx),%r13'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1121: Error: no such instruction: `adoxq %rbp,%r14'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1124: Error: no such instruction: `adcxq %rbp,%r14'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1126: Error: no such instruction: `adoxq %r15,%r10'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1127: Error: no such instruction: `mulxq 0(%rcx),%rax,%r15'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1128: Error: no such instruction: `adcxq %rax,%r10'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1129: Error: no such instruction: `adoxq %r15,%r11'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1130: Error: no such instruction: `mulxq 8(%rcx),%rax,%r15'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1131: Error: no such instruction: `adcxq %rax,%r11'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1132: Error: no such instruction: `adoxq %r15,%r12'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1133: Error: no such instruction: `mulxq 16(%rcx),%rax,%r15'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1135: Error: no such instruction: `adcxq %rax,%r12'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1136: Error: no such instruction: `adoxq %r15,%r13'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1137: Error: no such instruction: `mulxq 24(%rcx),%rax,%r15'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1141: Error: no such instruction: `adcxq %rax,%r13'
/home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/pregenerated/x86_64-mont-elf.S:1142: Error: no such instruction: `adoxq %rbp,%r15'
thread 'main' panicked at 'execution failed', /home/diabolo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.13.2/build.rs:613:9```
$ /usr/local/bin/gcc --version gcc (GCC) 7.3.0
Many vps still on centos6. Any idea?
Found a solution!
Because Centos6 binutils version is 2.20 - GAS is very old. Just install from git binutils version 2.31. That's all. For now working solution for me is gcc 7.3.0 and binutils 2.31 (i don't know minimal working version of gas, just install lastest from git).
I hope this this will help someone.
If the issue is only the ADX instructions then the maybe we could ask upstream OpenSSL to make the code work for assemblers that are missing ADX support. Usually that would be done by hacking the PerlAsm translator.
Alternatively, if there is a Rust crate that exposes clang's assembler for use by build scripts, then we could depend on that crate for Linux builds.
Something like https://github.com/nagisa/llvm_build_utils.rs might be a solution to this, by allowing build.rs to use Clang's assuembler even if Clang/LLVM isn't installed.
A more lightweight solution would be to pre-assemble the .S files into .o files when packaging/publishing ring. We already do this for Windows so that yasm/nasm isn't required; might as well do it for Linux too. I wouldn't mind doing it for macOS, iOS, Android, etc. as well, though we don't have as strong of a motivation for those platforms as we have for Linux.
Unfortunately I've also run into this problem just running builds on travis-ci. Unfortunately they still only allow for the 2014 ubuntu LTS (trusty). It's not possible to install or use a later version. I suppose it's possible I could use a container which would be something I'll look into, but I imagine more people than just me will have this problem.
I've tried installing the latest version of binutils from their git repo and I'm still running into this problem. If anyone has any suggestions, I would love to hear them. Thanks!
Logs: https://travis-ci.org/mike-engel/jwt-cli/jobs/456469189
In case anyone else comes across this, and is using Centos 6, you can resolve it by installing devtoolset-7 from scl, like this:
yum install centos-release-scl
yum install devtoolset-7
then enable the upgraded toolset in your shell:
. /opt/rh/devtoolset-7/enable
then cargo build
as usual.
Found a solution!
Because Centos6 binutils version is 2.20 - GAS is very old. Just install from git binutils version 2.31. That's all. For now working solution for me is gcc 7.3.0 and binutils 2.31 (i don't know minimal working version of gas, just install lastest from git).
I hope this this will help someone.
I got the same problem, and I have try this, but not work.
When I build diesel, it failded with ring. Then I create a test project just depend ring on master branch. it show the following error information: does someone know how to fix it?