Closed awichicago closed 1 year ago
Assuming you're running CentOS 7...
I have reproduced your issue on a CentOS 7.8 system with gcc 4.8.5.
Hercules builds correctly on CentOS 7.8 and gcc 7.5.
Our minimum required gcc version is 6.2.
Please run ./util/bldlvlck
and report back with its output.
This is described here in Step 4.
Bill
.libs/hdl.o: In function `cmpxchg1_amd64': /usr/local/src/hercules-helper-master/hyperion/machdep.h:356: multiple definition of `cmpxchg1_amd64' .libs/codepage.o:/usr/local/src/hercules-helper-master/hyperion/machdep.h:356: first defined here
The line numbers where the error supposedly occurs are not even being reported correctly. They're all reporting that the error is occurring on the __asm__
statement instead of the statement where the function is actually being defined:
And even that isn't consistent. The supposed error for the cmpxchg16_amd64
function for example, is the only one of the reported errors that correctly identifies the line number where the error supposedly occurs:
But of course ALL of the "errors" are completely BOGUS.
As you've identified he's probably using a garbage compiler.
We have been through these before, and it is one of the reasons we no longer support older gccs.
I think the issue is that I have 4.85 gcc - I have 6.2 installed but I can't seem to figure out how to get the build process to use gcc 6.2 (its in a separate folder - 4.85 is still installed). yum won't update 4.85 automatically.
I built my gcc 7.5 from source, so the directories will be different, but you use something like this before running your build process:
export CC=<path-to-your-gcc>/bin/gcc
Then start over with ./configure
.
Bill
And I would like to see the output from ./util/bldlvlck
, just so I'm better able to understand what you have.
I finally got it to compile using GCC 8.
Here is the ./util/bldlvlck
output:
Machine architecture is x86_64
OK autoconf requires 2.64, found 2.69
OK automake requires 1.9, found 1.13.4
OK bash requires 3.2, found 4.2.46
OK cmake requires 3.2, found 3.25.1
OK flex requires 2.5, found 2.5.37
OK gawk requires 3.0, found 4.0.2
OK gcc requires 6.2.0, found gcc 8.3.1
OK grep requires 1, found 2.20
OK ld requires 2.22, found 2.30.55
UPGRADE libtool requires 2.4.6, found 2.4.2
URL: https://sdl-hercules-390.github.io/html/hercinst.html
OK ltdl.h required include file, found
OK m4 requires 1.4.6, found 1.4.16
OK make requires 3.79, found 4.2.1
OK perl requires 5.6, found 5.16.3
OK sed requires 3.02, found 4.2.2
Glad it's working!
System: 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Hyperion Version: 4.5.0
Pack Refs:
Error: After running ./confgure without error, I seem to be getting duplicate symbols:
And it goes on for about 25 more symbols or so.
Any idea what this might be?