mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-12-15 00:00:20 +00:00
From Craig Silverstein: expand the TLS test to a second file, to test
IE to LE conversion.
This commit is contained in:
parent
2152e0479e
commit
e03748586c
@ -287,25 +287,25 @@ exception_shared.so: exception_test_1_pic.o exception_test_2_pic.o
|
|||||||
|
|
||||||
if TLS
|
if TLS
|
||||||
|
|
||||||
tls_test_SOURCES = tls_test.cc tls_test_main.cc tls_test.h
|
tls_test_SOURCES = tls_test.cc tls_test_file2.cc tls_test_main.cc tls_test.h
|
||||||
tls_test_DEPENDENCIES = gcctestdir/ld
|
tls_test_DEPENDENCIES = gcctestdir/ld
|
||||||
tls_test_LDFLAGS = -Bgcctestdir/
|
tls_test_LDFLAGS = -Bgcctestdir/
|
||||||
tls_test_LDADD = -lpthread
|
tls_test_LDADD = -lpthread
|
||||||
|
|
||||||
tls_pic_test_SOURCES = tls_test_main.cc
|
tls_pic_test_SOURCES = tls_test_main.cc
|
||||||
tls_pic_test_DEPENDENCIES = gcctestdir/ld tls_test_pic.o
|
tls_pic_test_DEPENDENCIES = gcctestdir/ld tls_test_pic.o tls_test_file2_pic.o
|
||||||
tls_pic_test_LDFLAGS = -Bgcctestdir/
|
tls_pic_test_LDFLAGS = -Bgcctestdir/
|
||||||
tls_pic_test_LDADD = tls_test_pic.o -lpthread
|
tls_pic_test_LDADD = tls_test_pic.o tls_test_file2_pic.o -lpthread
|
||||||
|
|
||||||
tls_static_test_SOURCES = tls_test.cc tls_test_main.cc
|
tls_static_test_SOURCES = tls_test.cc tls_test_file2.cc tls_test_main.cc
|
||||||
tls_static_test_DEPENDENCIES = gcctestdir/ld
|
tls_static_test_DEPENDENCIES = gcctestdir/ld
|
||||||
tls_static_test_LDFLAGS = -Bgcctestdir/ -static
|
tls_static_test_LDFLAGS = -Bgcctestdir/ -static
|
||||||
tls_static_test_LDADD = -lpthread
|
tls_static_test_LDADD = -lpthread
|
||||||
|
|
||||||
tls_static_pic_test_SOURCES = tls_test_main.cc
|
tls_static_pic_test_SOURCES = tls_test_main.cc
|
||||||
tls_static_pic_test_DEPENDENCIES = gcctestdir/ld
|
tls_static_pic_test_DEPENDENCIES = gcctestdir/ld tls_test_pic.o tls_test_file2_pic.o
|
||||||
tls_static_pic_test_LDFLAGS = -Bgcctestdir/ -static
|
tls_static_pic_test_LDFLAGS = -Bgcctestdir/ -static
|
||||||
tls_static_pic_test_LDADD = tls_test_pic.o -lpthread
|
tls_static_pic_test_LDADD = tls_test_pic.o tls_test_file2_pic.o -lpthread
|
||||||
|
|
||||||
tls_shared_test_SOURCES = tls_test_main.cc
|
tls_shared_test_SOURCES = tls_test_main.cc
|
||||||
tls_shared_test_DEPENDENCIES = gcctestdir/ld tls_test_shared.so
|
tls_shared_test_DEPENDENCIES = gcctestdir/ld tls_test_shared.so
|
||||||
@ -315,8 +315,11 @@ tls_shared_test_LDADD = tls_test_shared.so -lpthread
|
|||||||
tls_test_pic.o: tls_test.cc
|
tls_test_pic.o: tls_test.cc
|
||||||
$(CXXCOMPILE) -c -fpic -o $@ $<
|
$(CXXCOMPILE) -c -fpic -o $@ $<
|
||||||
|
|
||||||
tls_test_shared.so: tls_test_pic.o
|
tls_test_file2_pic.o: tls_test_file2.cc
|
||||||
$(CXXLINK) -shared tls_test_pic.o
|
$(CXXCOMPILE) -c -fpic -o $@ $<
|
||||||
|
|
||||||
|
tls_test_shared.so: tls_test_pic.o tls_test_file2_pic.o
|
||||||
|
$(CXXLINK) -shared tls_test_pic.o tls_test_file2_pic.o
|
||||||
|
|
||||||
if FN_PTRS_IN_SO_WITHOUT_PIC
|
if FN_PTRS_IN_SO_WITHOUT_PIC
|
||||||
|
|
||||||
@ -325,8 +328,8 @@ tls_shared_nonpic_test_DEPENDENCIES = gcctestdir/ld tls_test_shared_nonpic.so
|
|||||||
tls_shared_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
|
tls_shared_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
|
||||||
tls_shared_nonpic_test_LDADD = tls_test_shared_nonpic.so -lpthread
|
tls_shared_nonpic_test_LDADD = tls_test_shared_nonpic.so -lpthread
|
||||||
|
|
||||||
tls_test_shared_nonpic.so: tls_test.o
|
tls_test_shared_nonpic.so: tls_test.o tls_test_file2.o
|
||||||
$(CXXLINK) -shared tls_test.o
|
$(CXXLINK) -shared tls_test.o tls_test_file2.o
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -231,14 +231,18 @@ tls_shared_test_OBJECTS = $(am_tls_shared_test_OBJECTS)
|
|||||||
am__tls_static_pic_test_SOURCES_DIST = tls_test_main.cc
|
am__tls_static_pic_test_SOURCES_DIST = tls_test_main.cc
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@am_tls_static_pic_test_OBJECTS = tls_test_main.$(OBJEXT)
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@am_tls_static_pic_test_OBJECTS = tls_test_main.$(OBJEXT)
|
||||||
tls_static_pic_test_OBJECTS = $(am_tls_static_pic_test_OBJECTS)
|
tls_static_pic_test_OBJECTS = $(am_tls_static_pic_test_OBJECTS)
|
||||||
am__tls_static_test_SOURCES_DIST = tls_test.cc tls_test_main.cc
|
am__tls_static_test_SOURCES_DIST = tls_test.cc tls_test_file2.cc \
|
||||||
|
tls_test_main.cc
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@am_tls_static_test_OBJECTS = \
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@am_tls_static_test_OBJECTS = \
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@ tls_test.$(OBJEXT) \
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@ tls_test.$(OBJEXT) \
|
||||||
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@ tls_test_file2.$(OBJEXT) \
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@ tls_test_main.$(OBJEXT)
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@ tls_test_main.$(OBJEXT)
|
||||||
tls_static_test_OBJECTS = $(am_tls_static_test_OBJECTS)
|
tls_static_test_OBJECTS = $(am_tls_static_test_OBJECTS)
|
||||||
am__tls_test_SOURCES_DIST = tls_test.cc tls_test_main.cc tls_test.h
|
am__tls_test_SOURCES_DIST = tls_test.cc tls_test_file2.cc \
|
||||||
|
tls_test_main.cc tls_test.h
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@am_tls_test_OBJECTS = \
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@am_tls_test_OBJECTS = \
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@ tls_test.$(OBJEXT) \
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@ tls_test.$(OBJEXT) \
|
||||||
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@ tls_test_file2.$(OBJEXT) \
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@ tls_test_main.$(OBJEXT)
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@ tls_test_main.$(OBJEXT)
|
||||||
tls_test_OBJECTS = $(am_tls_test_OBJECTS)
|
tls_test_OBJECTS = $(am_tls_test_OBJECTS)
|
||||||
am__two_file_pic_test_SOURCES_DIST = two_file_test_main.cc
|
am__two_file_pic_test_SOURCES_DIST = two_file_test_main.cc
|
||||||
@ -691,22 +695,22 @@ object_unittest_SOURCES = object_unittest.cc
|
|||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_separate_shared_21_test_LDADD = \
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_separate_shared_21_test_LDADD = \
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@ exception_shared_2.so exception_shared_1.so
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@ exception_shared_2.so exception_shared_1.so
|
||||||
|
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_SOURCES = tls_test.cc tls_test_main.cc tls_test.h
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_SOURCES = tls_test.cc tls_test_file2.cc tls_test_main.cc tls_test.h
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_DEPENDENCIES = gcctestdir/ld
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_DEPENDENCIES = gcctestdir/ld
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_LDFLAGS = -Bgcctestdir/
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_LDFLAGS = -Bgcctestdir/
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_LDADD = -lpthread
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_LDADD = -lpthread
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_pic_test_SOURCES = tls_test_main.cc
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_pic_test_SOURCES = tls_test_main.cc
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_pic_test_DEPENDENCIES = gcctestdir/ld tls_test_pic.o
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_pic_test_DEPENDENCIES = gcctestdir/ld tls_test_pic.o tls_test_file2_pic.o
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_pic_test_LDFLAGS = -Bgcctestdir/
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_pic_test_LDFLAGS = -Bgcctestdir/
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_pic_test_LDADD = tls_test_pic.o -lpthread
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_pic_test_LDADD = tls_test_pic.o tls_test_file2_pic.o -lpthread
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_static_test_SOURCES = tls_test.cc tls_test_main.cc
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_static_test_SOURCES = tls_test.cc tls_test_file2.cc tls_test_main.cc
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_static_test_DEPENDENCIES = gcctestdir/ld
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_static_test_DEPENDENCIES = gcctestdir/ld
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_static_test_LDFLAGS = -Bgcctestdir/ -static
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_static_test_LDFLAGS = -Bgcctestdir/ -static
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_static_test_LDADD = -lpthread
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_static_test_LDADD = -lpthread
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_static_pic_test_SOURCES = tls_test_main.cc
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_static_pic_test_SOURCES = tls_test_main.cc
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_static_pic_test_DEPENDENCIES = gcctestdir/ld
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_static_pic_test_DEPENDENCIES = gcctestdir/ld tls_test_pic.o tls_test_file2_pic.o
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_static_pic_test_LDFLAGS = -Bgcctestdir/ -static
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_static_pic_test_LDFLAGS = -Bgcctestdir/ -static
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_static_pic_test_LDADD = tls_test_pic.o -lpthread
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_static_pic_test_LDADD = tls_test_pic.o tls_test_file2_pic.o -lpthread
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_test_SOURCES = tls_test_main.cc
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_test_SOURCES = tls_test_main.cc
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_test_DEPENDENCIES = gcctestdir/ld tls_test_shared.so
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_test_DEPENDENCIES = gcctestdir/ld tls_test_shared.so
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
|
||||||
@ -861,6 +865,7 @@ distclean-compile:
|
|||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testfile.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testfile.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testmain.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testmain.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tls_test.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tls_test.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tls_test_file2.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tls_test_main.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tls_test_main.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/two_file_test_1.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/two_file_test_1.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/two_file_test_2.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/two_file_test_2.Po@am__quote@
|
||||||
@ -1175,11 +1180,14 @@ uninstall-am: uninstall-info-am
|
|||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_pic.o: tls_test.cc
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_pic.o: tls_test.cc
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@ $(CXXCOMPILE) -c -fpic -o $@ $<
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@ $(CXXCOMPILE) -c -fpic -o $@ $<
|
||||||
|
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_shared.so: tls_test_pic.o
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_file2_pic.o: tls_test_file2.cc
|
||||||
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@ $(CXXLINK) -shared tls_test_pic.o
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@ $(CXXCOMPILE) -c -fpic -o $@ $<
|
||||||
|
|
||||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_shared_nonpic.so: tls_test.o
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_shared.so: tls_test_pic.o tls_test_file2_pic.o
|
||||||
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@ $(CXXLINK) -shared tls_test.o
|
@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@ $(CXXLINK) -shared tls_test_pic.o tls_test_file2_pic.o
|
||||||
|
|
||||||
|
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_shared_nonpic.so: tls_test.o tls_test_file2.o
|
||||||
|
@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@ $(CXXLINK) -shared tls_test.o tls_test_file2.o
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
.NOEXPORT:
|
.NOEXPORT:
|
||||||
|
@ -38,7 +38,11 @@
|
|||||||
// 4 Access to an initialized static thread variable.
|
// 4 Access to an initialized static thread variable.
|
||||||
// 5 Taking the address of a global thread variable.
|
// 5 Taking the address of a global thread variable.
|
||||||
// 6 Taking the address of a static thread variable.
|
// 6 Taking the address of a static thread variable.
|
||||||
// 7 Verify that the above tests left the variables set correctly.
|
// 8 Like test 1, but with the thread variable defined in another file.
|
||||||
|
// 9 Like test 3, but with the thread variable defined in another file.
|
||||||
|
// 10 Like test 5, but with the thread variable defined in another file.
|
||||||
|
// last Verify that the above tests left the variables set correctly.
|
||||||
|
|
||||||
|
|
||||||
#include "tls_test.h"
|
#include "tls_test.h"
|
||||||
|
|
||||||
@ -49,6 +53,11 @@ static __thread int v4 = 4;
|
|||||||
__thread int v5;
|
__thread int v5;
|
||||||
static __thread int v6;
|
static __thread int v6;
|
||||||
|
|
||||||
|
// These variables are defined in tls_test_file2.cc
|
||||||
|
extern __thread int o1;
|
||||||
|
extern __thread int o2;
|
||||||
|
extern __thread int o3;
|
||||||
|
|
||||||
bool
|
bool
|
||||||
t1()
|
t1()
|
||||||
{
|
{
|
||||||
@ -105,7 +114,7 @@ t5()
|
|||||||
return v5 == 50;
|
return v5 == 50;
|
||||||
}
|
}
|
||||||
|
|
||||||
// For test 5 the main function calls f6b(f6a()), then calls t6().
|
// For test 6 the main function calls f6b(f6a()), then calls t6().
|
||||||
|
|
||||||
int*
|
int*
|
||||||
f6a()
|
f6a()
|
||||||
@ -125,13 +134,56 @@ t6()
|
|||||||
return v6 == 60;
|
return v6 == 60;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The slot for t7() is unused.
|
||||||
|
|
||||||
bool
|
bool
|
||||||
t7()
|
t8()
|
||||||
|
{
|
||||||
|
if (o1 != 0)
|
||||||
|
return false;
|
||||||
|
o1 = 10;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
t9()
|
||||||
|
{
|
||||||
|
if (o2 != 2)
|
||||||
|
return false;
|
||||||
|
o2 = 20;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// For test 10 the main function calls f10b(f10a()), then calls t10().
|
||||||
|
|
||||||
|
int*
|
||||||
|
f10a()
|
||||||
|
{
|
||||||
|
return &o3;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
f10b(int* p)
|
||||||
|
{
|
||||||
|
*p = 30;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
t10()
|
||||||
|
{
|
||||||
|
return o3 == 30;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
t_last()
|
||||||
{
|
{
|
||||||
return (v1 == 10
|
return (v1 == 10
|
||||||
&& v2 == 20
|
&& v2 == 20
|
||||||
&& v3 == 30
|
&& v3 == 30
|
||||||
&& v4 == 40
|
&& v4 == 40
|
||||||
&& v5 == 50
|
&& v5 == 50
|
||||||
&& v6 == 60);
|
&& v6 == 60
|
||||||
|
&& o1 == 10
|
||||||
|
&& o2 == 20
|
||||||
|
&& o3 == 30);
|
||||||
}
|
}
|
||||||
|
@ -36,4 +36,11 @@ extern int* f6a();
|
|||||||
extern void f6b(int*);
|
extern void f6b(int*);
|
||||||
extern bool t6();
|
extern bool t6();
|
||||||
|
|
||||||
extern bool t7();
|
extern bool t8();
|
||||||
|
extern bool t9();
|
||||||
|
|
||||||
|
extern int* f10a();
|
||||||
|
extern void f10b(int*);
|
||||||
|
extern bool t10();
|
||||||
|
|
||||||
|
extern bool t_last();
|
||||||
|
27
gold/testsuite/tls_test_file2.cc
Normal file
27
gold/testsuite/tls_test_file2.cc
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
// tls_test.cc -- test TLS variables for gold
|
||||||
|
|
||||||
|
// Copyright 2006, 2007 Free Software Foundation, Inc.
|
||||||
|
// Written by Ian Lance Taylor <iant@google.com>.
|
||||||
|
|
||||||
|
// This file is part of gold.
|
||||||
|
|
||||||
|
// This program is free software; you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with this program; if not, write to the Free Software
|
||||||
|
// Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
|
||||||
|
// MA 02110-1301, USA.
|
||||||
|
|
||||||
|
// This is the definition of a thread-local variable in another file.
|
||||||
|
|
||||||
|
__thread int o1;
|
||||||
|
__thread int o2 = 2;
|
||||||
|
__thread int o3;
|
@ -78,7 +78,11 @@ thread_routine(void* arg)
|
|||||||
check("t5", t5());
|
check("t5", t5());
|
||||||
f6b(f6a());
|
f6b(f6a());
|
||||||
check("t6", t6());
|
check("t6", t6());
|
||||||
check("t7", t7());
|
check("t8", t8());
|
||||||
|
check("t9", t9());
|
||||||
|
f10b(f10a());
|
||||||
|
check("t10", t10());
|
||||||
|
check("t_last", t_last());
|
||||||
|
|
||||||
// Unlock the second mutex.
|
// Unlock the second mutex.
|
||||||
err = pthread_mutex_unlock(&pms->mutex2);
|
err = pthread_mutex_unlock(&pms->mutex2);
|
||||||
@ -88,7 +92,7 @@ thread_routine(void* arg)
|
|||||||
err = pthread_mutex_lock(&pms->mutex3);
|
err = pthread_mutex_lock(&pms->mutex3);
|
||||||
assert(err == 0);
|
assert(err == 0);
|
||||||
|
|
||||||
check("t7", t7());
|
check("t_last", t_last());
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user