diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index dc8d5936f52a6d5655eb2ef5763942819a9c3212..cf2bc8f385733fbb3acb582d33aa9ddf42caef23 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2009-10-21  Joseph Myers  <joseph@codesourcery.com>
+
+	* config/sh/sh.c (nonpic_symbol_mentioned_p): Allow UNSPEC_TPOFF.
+
 2009-10-21  Jakub Jelinek  <jakub@redhat.com>
 
 	PR other/25507
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index 7758bfa0f3bdc872ad2cb74cabfc632329594bf1..26bceea670d28a93551a9539250d71cbfafdc9fc 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -9431,6 +9431,7 @@ nonpic_symbol_mentioned_p (rtx x)
 	  || XINT (x, 1) == UNSPEC_GOTPLT
 	  || XINT (x, 1) == UNSPEC_GOTTPOFF
 	  || XINT (x, 1) == UNSPEC_DTPOFF
+	  || XINT (x, 1) == UNSPEC_TPOFF
 	  || XINT (x, 1) == UNSPEC_PLT
 	  || XINT (x, 1) == UNSPEC_SYMOFF
 	  || XINT (x, 1) == UNSPEC_PCREL_SYMOFF))
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b1c3fdcb2de5195cc920ce017d226efd43566823..ec986f3270ba45afa1bc66af55eac3314c36877a 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2009-10-21  Joseph Myers  <joseph@codesourcery.com>
+
+	* gcc.dg/tls/pie-1.c: New test.
+
 2009-10-21  Jakub Jelinek  <jakub@redhat.com>
 
 	* g++.dg/abi/mangle33.C: New test.
diff --git a/gcc/testsuite/gcc.dg/tls/pie-1.c b/gcc/testsuite/gcc.dg/tls/pie-1.c
new file mode 100644
index 0000000000000000000000000000000000000000..07eb5f1ad25c0fcf4ee1248e3a46acf8c6bf0923
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tls/pie-1.c
@@ -0,0 +1,6 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target fpic } */
+/* { dg-options "-fpie" } */
+/* { dg-require-effective-target tls } */
+
+__thread int a; int b; int main() { return a = b; }