Ok, the problem is solved. I add a patch to my binutils2.20.1. The patch is
310-backport_fPIE_mips_fix.patch
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -5696,9 +5696,9 @@ mips_elf_create_dynamic_relocation (bfd
/* We must now calculate the dynamic symbol table index to use
in the relocation. */
- if (h != NULL
- && (!h->root.def_regular
- || (info->shared && !info->symbolic && !h->root.forced_local)))
+ if (!(h == NULL
+ || (h->root.def_regular
+ && (info->executable || info->symbolic || h->root.forced_local))))
{
indx = h->root.dynindx;
if (SGI_COMPAT (output_bfd))
Thanks,
-George
From: George Wang
Sent: Wednesday, November 05, 2014 4:51 PM
To: Hon Ching Lo
Cc: Mike Pontillo; [email protected]
Subject: Re: [TrouSerS-users] tcsd segmentation fault
Hi,
Thanks for the help and reply!
It crashes when tcsd was trying to touch uclib, but I didn't do anything no
uclibc.
Below is the strace output:
# strace ./tcsd
execve("./tcsd", ["./tcsd"], [/* 2 vars */]) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2aaad000
stat("/etc/ld.so.cache", {st_mode=S_IFREG|0644, st_size=64, ...}) = 0
open("/etc/ld.so.cache", O_RDONLY) = 3
old_mmap(NULL, 64, PROT_READ, MAP_SHARED, 3, 0) = 0x2aaae000
close(3) = 0
open("/lib/libpthread.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=91664, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2aaaf000
read(3,
"\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\10\0\0\0\1\0\0004\220\0\0\0004"...,
4096) = 4096
old_mmap(NULL, 143360, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aabd000
old_mmap(0x2aabd000, 50152, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) =
0x2aabd000
old_mmap(0x2aad9000, 19308, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0xc000) = 0x2aad9000
old_mmap(0x2aade000, 7792, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2aade000
close(3) = 0
munmap(0x2aaaf000, 4096) = 0
open("/lib/libcrypto.so.1.0.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0775, st_size=1365472, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2aaaf000
read(3,
"\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\10\0\0\0\1\0\2\356\0\0\0\0004"..., 4096)
= 4096
old_mmap(NULL, 1314816, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2aae0000
old_mmap(0x2aae0000, 1180484, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0)
= 0x2aae0000
old_mmap(0x2ac10000, 58472, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0x120000) = 0x2ac10000
old_mmap(0x2ac1f000, 5504, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2ac1f000
close(3) = 0
munmap(0x2aaaf000, 4096) = 0
open("/lib/libgcc_s.so.1", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=187980, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2aaaf000
read(3,
"\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\10\0\0\0\1\0\0\261\240\0\0\0004"...,
4096) = 4096
old_mmap(NULL, 217088, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2ac21000
old_mmap(0x2ac21000, 147796, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0)
= 0x2ac21000
old_mmap(0x2ac55000, 916, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0x24000) = 0x2ac55000
close(3) = 0
munmap(0x2aaaf000, 4096) = 0
open("/lib/libc.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=622112, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2aaaf000
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\10\0\0\0\1\0\0\243
\0\0\0004"..., 4096) = 4096
old_mmap(NULL, 667648, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2ac56000
old_mmap(0x2ac56000, 574788, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0)
= 0x2ac56000
old_mmap(0x2acf2000, 5580, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0x8c000) = 0x2acf2000
old_mmap(0x2acf4000, 20112, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2acf4000
close(3) = 0
munmap(0x2aaaf000, 4096) = 0
open("/lib/libc.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=622112, ...}) = 0
close(3) = 0
open("/lib/libdl.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=7856, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2aaaf000
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\10\0\0\0\1\0\0\10@\0\0\0004"...,
4096) = 4096
old_mmap(NULL, 73728, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2acf9000
old_mmap(0x2acf9000, 6480, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) =
0x2acf9000
old_mmap(0x2ad0a000, 2568, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0x1000) = 0x2ad0a000
close(3) = 0
munmap(0x2aaaf000, 4096) = 0
open("/lib/libgcc_s.so.1", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=187980, ...}) = 0
close(3) = 0
open("/lib/libc.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=622112, ...}) = 0
close(3) = 0
open("/lib/libc.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=622112, ...}) = 0
close(3) = 0
open("/lib/libc.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=622112, ...}) = 0
close(3) = 0
munmap(0x2aaae000, 64) = 0
stat("/lib/ld-uClibc.so.0", {st_mode=S_IFREG|0755, st_size=21148, ...}) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Segmentation fault
Here is bt of gds:
Program received signal SIGSEGV, Segmentation fault.
0x2aaa9a3c in _dl_parse_relocation_information () from
/home/george/rootfs/lib/ld-uClibc.so.0
(gdb) bt
#0 0x2aaa9a3c in _dl_parse_relocation_information () from
/home/g/rootfs/lib/ld-uClibc.so.0
#1 0x2aaa9bcc in _dl_fixup () from /home/g/rootfs/lib/ld-uClibc.so.0
#2 0x2aaac04c in _dl_get_ready_to_run () from
/home/g/rootfs/lib/ld-uClibc.so.0
#3 0x2aaac6a8 in ?? () from /home/g/rootfs/lib/ld-uClibc.so.0
warning: GDB can't find the start of the function at 0x2aaac6a7.
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
Thanks,
George
________________________________
From: Hon Ching Lo <[email protected]<mailto:[email protected]>>
Sent: Wednesday, November 05, 2014 4:16 PM
To: George Wang
Cc: Mike Pontillo;
[email protected]<mailto:[email protected]>
Subject: Re: [TrouSerS-users] tcsd segmentation fault
Hi George,
I have just updated my openssl from OpenSSL 1.0.1e-fips to OpenSSL 1.0.1j. I
would start tcsd without a problem.
Vicky
On Wed, Nov 5, 2014 at 4:28 PM, Mike Pontillo
<[email protected]<mailto:[email protected]>> wrote:
So you can run in GDB, but the moment you step into main() it crashes? (or
before?) Can you paste your console output so that we can see what commands,
exactly, were run?
Also, if you can get tcsd to crash from within GDB, please post the output
of the "bt" (backtrace) command.
Thanks,
Mike
From: George Wang
<[email protected]<mailto:[email protected]>>
Date: Wednesday, November 5, 2014 at 1:21 PM
To: Mike Pontillo <[email protected]<mailto:[email protected]>>,
"[email protected]<mailto:[email protected]>"
<[email protected]<mailto:[email protected]>>
Subject: RE: [TrouSerS-users] tcsd segmentation fault
Hi Mike,
No, I cannot even start gdb at this moment, tcsd will got seg fault after I
have one step on gdb.
I m using 2.6.32.24 running on MIPS 74K
Thanks,
-George
From: Mike Pontillo [mailto:[email protected]]
Sent: Wednesday, November 05, 2014 11:40 AM
To: George Wang;
[email protected]<mailto:[email protected]>
Subject: Re: [TrouSerS-users] tcsd segmentation fault
We're testing with OpenSSL version 1.0.1f-1ubuntu2 on Ubuntu 14.04 and
OpenSSL version 0.9.8za on Mac OS X.
What is your operating environment? Are you able to run tcsd within gdb and
get a backtrace?
Regards,
Mike
From: George Wang
<[email protected]<mailto:[email protected]>>
Date: Wednesday, November 5, 2014 at 11:19 AM
To:
"[email protected]<mailto:[email protected]>"
<[email protected]<mailto:[email protected]>>
Subject: [TrouSerS-users] tcsd segmentation fault
Hi All,
Has anyone seen tcsd got segmentation fault with openssl1.0.1j once tcsd
started?
Thanks,
-George
------------------------------------------------------------------------------
_______________________________________________
TrouSerS-users mailing list
[email protected]<mailto:[email protected]>
https://lists.sourceforge.net/lists/listinfo/trousers-users
------------------------------------------------------------------------------
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://pubads.g.doubleclick.net/gampad/clk?id=154624111&iu=/4140/ostg.clktrk
_______________________________________________
TrouSerS-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/trousers-users