Fix SIGILL in TestDARN() function

I thought this was due to trying to call the darn instruction even though g_hasDARN == false on Power8. However, the problem turned out to be a Power9 load was used when DARN class threw a DARN_Err.
pull/752/head
Jeffrey Walton 2018-11-30 09:12:35 -05:00
parent 3e909c13d4
commit 6028a6921a
No known key found for this signature in database
GPG Key ID: B36AB348921B1838
2 changed files with 1 additions and 9 deletions

View File

@ -637,7 +637,7 @@ ifeq ($(DETECT_FEATURES),1)
TOPT = $(POWER9_FLAG) TOPT = $(POWER9_FLAG)
HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l) HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
ifeq ($(strip $(HAVE_OPT)),0) ifeq ($(strip $(HAVE_OPT)),0)
DARN_FLAG = $(POWER9_FLAG) # DARN_FLAG = $(POWER9_FLAG)
else else
POWER9_FLAG = POWER9_FLAG =
endif endif

View File

@ -6,14 +6,6 @@
// additional CXXFLAGS are required to enable the appropriate // additional CXXFLAGS are required to enable the appropriate
// instructions sets in some build configurations. // instructions sets in some build configurations.
// The XLC on Linux case is a special case because code generated by XLC on
// Linux claims the generator is available when it is not. LLVM Clang does
// not have the trouble. The problem seems to be related to the signal
// handler. It looks like first call to CPU_ProbePower9() and CPU_ProbeDARN()
// are correct, but the call to HasDARN() returns the wrong result. If I am
// parsing things correctly while stepping the code and disassembly, it looks
// like the result of the inline asm is being removed.
#include "pch.h" #include "pch.h"
#include "config.h" #include "config.h"