diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 278d03f38e09a4a92039adc9f7e8180214d6bb91..bfca2171be22b9da53153156c6d5e23e5cd86e59 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	PR target/38085
+	* config/i386/i386.c (x86_function_profiler)
+	[!NO_PROFILE_COUNTERS]: Fix typo.
+	* config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
+	instead of callq.
+
 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
 	    Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
 
diff --git a/gcc/config/i386/gmon-sol2.c b/gcc/config/i386/gmon-sol2.c
index d20762156a6aa4e6314252533c50377aae091f75..e0923a0770f6aeed436b3afbd8da8f9a58335569 100644
--- a/gcc/config/i386/gmon-sol2.c
+++ b/gcc/config/i386/gmon-sol2.c
@@ -268,7 +268,7 @@ asm(".globl _mcount\n"
        FROMPCINDEX (via the frame pointer.  */
     "\tmovq\t0x38(%rsp),%rdi\n"
     "\tmovq\t0x8(%rbp),%rsi\n"
-    "\tcallq\tinternal_mcount\n"
+    "\tcall\tinternal_mcount\n"
     /* Restore the saved registers.  */
     "\tmovq\t0x30(%rsp),%r9\n"
     "\tmovq\t0x28(%rsp),%r8\n"
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 9cc66617e86390f233e74516d4e188474c79263a..56207657ba120063c99e99cb8f2677318c41dd13 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -26369,7 +26369,7 @@ x86_function_profiler (FILE *file, int labelno ATTRIBUTE_UNUSED)
   if (TARGET_64BIT)
     {
 #ifndef NO_PROFILE_COUNTERS
-      fprintf (file, "\tleaq\t" LPREFIX "P%d@(%%rip),%%r11\n", labelno);
+      fprintf (file, "\tleaq\t" LPREFIX "P%d(%%rip),%%r11\n", labelno);
 #endif
 
       if (DEFAULT_ABI == SYSV_ABI && flag_pic)
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index ec9d8d2dc3cb4ae4fff2a17173cc92707b058201..db348ba349c201da7d87d40a7037ad8fed41c5e1 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,13 @@
+2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	PR target/38085
+	* config/i386/t-sol2 ($(T)gmon.o): Use CFLAGS instead of
+	MULTILIB_CFLAGS.
+	($(T)gcrt1.o): Likewise.
+	($(T)crt1.o): Likewise.
+	($(T)crti.o): Likewise.
+	($(T)crtn.o): Likewise.
+
 2010-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
 	PR other/42980
diff --git a/libgcc/config/i386/t-sol2 b/libgcc/config/i386/t-sol2
index 24b7c7c10f41abdc76d17366d28fa867a1393ead..351d7fb90e774670232bd7f8cda4d8e5995081f3 100644
--- a/libgcc/config/i386/t-sol2
+++ b/libgcc/config/i386/t-sol2
@@ -1,6 +1,6 @@
 # gmon build rule:
 $(T)gmon.o:	$(gcc_srcdir)/config/i386/gmon-sol2.c $(GCC_PASSES) $(CONFIG_H)
-	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) \
+	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(CFLAGS) \
 		-c $(gcc_srcdir)/config/i386/gmon-sol2.c -o $(T)gmon.o
 
 # Assemble startup files.
@@ -9,16 +9,16 @@ $(T)gmon.o:	$(gcc_srcdir)/config/i386/gmon-sol2.c $(GCC_PASSES) $(CONFIG_H)
 # the comments with sed.  This bug may only be in the Early Access releases.
 $(T)gcrt1.o: $(gcc_srcdir)/config/i386/sol2-gc1.asm $(GCC_PASSES)
 	sed -e '/^!/d' <$(gcc_srcdir)/config/i386/sol2-gc1.asm >gcrt1.s
-	$(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $(T)gcrt1.o gcrt1.s
+	$(GCC_FOR_TARGET) $(CFLAGS) -c -o $(T)gcrt1.o gcrt1.s
 $(T)crt1.o: $(gcc_srcdir)/config/i386/sol2-c1.asm $(GCC_PASSES)
 	sed -e '/^!/d' <$(gcc_srcdir)/config/i386/sol2-c1.asm >crt1.s
-	$(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $(T)crt1.o crt1.s
+	$(GCC_FOR_TARGET) $(CFLAGS) -c -o $(T)crt1.o crt1.s
 $(T)crti.o: $(gcc_srcdir)/config/i386/sol2-ci.asm $(GCC_PASSES)
 	sed -e '/^!/d' <$(gcc_srcdir)/config/i386/sol2-ci.asm >crti.s
-	$(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $(T)crti.o crti.s
+	$(GCC_FOR_TARGET) $(CFLAGS) -c -o $(T)crti.o crti.s
 $(T)crtn.o: $(gcc_srcdir)/config/i386/sol2-cn.asm $(GCC_PASSES)
 	sed -e '/^!/d' <$(gcc_srcdir)/config/i386/sol2-cn.asm >crtn.s
-	$(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $(T)crtn.o crtn.s
+	$(GCC_FOR_TARGET) $(CFLAGS) -c -o $(T)crtn.o crtn.s
 
 # We need to use -fPIC when we are using gcc to compile the routines in
 # crtstuff.c.  This is only really needed when we are going to use gcc/g++