This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug testsuite/80759] gcc.target/x86_64/abi/ms-sysv FAILs
- From: "ro at CeBiTec dot Uni-Bielefeld.DE" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 12 Jun 2017 10:07:43 +0000
- Subject: [Bug testsuite/80759] gcc.target/x86_64/abi/ms-sysv FAILs
- Auto-submitted: auto-generated
- References: <bug-80759-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80759
--- Comment #34 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> ---
One more data point: I tried to run the ms-sysv.exp tests on
x86_64-apple-darwin and failed initially:
FAIL: gcc.target/x86_64/abi/ms-sysv/ms-sysv.c -O2 "-DGEN_ARGS=-p0" (test for
excess errors)
Excess errors:
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.c:168:Unknown
pseudo-op: .global
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.c:168:Rest
of line ignored. 1st junk character valued 100 (d).
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S:51:Unknown
pseudo-op: .global
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S:51:Rest
of line ignored. 1st junk character valued 114 (r).
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S:73:Unknown
pseudo-op: .global
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S:73:Rest
of line ignored. 1st junk character valued 109 (m).
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S:96:Unknown
pseudo-op: .global
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S:96:Rest
of line ignored. 1st junk character valued 100 (d).
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S:97:Unknown
pseudo-op: .cfi_startproc
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S:107:Unknown
pseudo-op: .global
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S:107:Rest
of line ignored. 1st junk character valued 100 (d).
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S:116:Unknown
pseudo-op: .cfi_endproc
There are two issues here: while gas understands .global, the Darwin as
does not. However, globl is common to both (as can e.g. be seen in
libffi/src/x86/sysv.S), so using it makes the test more portable.
The .cfi_* pseudo-ops are another matter: the same file has this comment
/* Sadly, OSX cctools-as doesn't understand .cfi directives at all. */
so if frame info is really necessary, it would have to be hand-coded as
in those files. It seems that it's not, though: just commenting
.cfi_startproc and .cfi_endproc still lets the tests still PASS on
x86_64-pc-linux-gnu. Older Solaris/x86 assemblers have the same issue,
btw.
I cannot right now test the patched tests on Darwin, but will have to do
so later tonight at home.
Rainer
diff --git a/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S
b/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S
--- a/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S
+++ b/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S
@@ -34,7 +34,7 @@ see the files COPYING3 and COPYING.RUNTI
# endif
# define FUNC(fn) \
- .global fn; \
+ .globl fn; \
ELFFN_BEGIN(fn); \
fn:
@@ -94,7 +94,7 @@ FUNC_END(mem_to_regs)
# NOTE: Not MT safe
FUNC(do_test_unaligned)
- .cfi_startproc
+ #.cfi_startproc
# The below alignment checks are to verify correctness of the test
# its self.
@@ -113,7 +113,7 @@ FUNC(do_test_aligned)
L0:
popf
jmp do_test_body
- .cfi_endproc
+ #.cfi_endproc
FUNC_END(do_test_aligned)
FUNC_END(do_test_unaligned)
diff --git a/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.c
b/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.c
--- a/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.c
+++ b/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.c
@@ -156,7 +156,7 @@ static const char *argv0;
#endif
#define FUNC_BEGIN(fn) \
- " .global " fn "\n" \
+ " .globl " fn "\n" \
ELFFN_BEGIN(fn) \
fn ":\n"
#define FUNC_END(fn) ELFFN_END(fn)