strip for Solaris 9 / Sparc
by Jacek Popwski » Thu, 10 Nov 2005 00:49:00 GMT
Hello Solaris wizards and users.
I use Solaris 9 on Sparc.
I installed gcc from Companion Software CD, but I have problem with strip.
When I use strip my binary won't work because it can't find ELF.
I read about that problem and people suggested using original Solaris
(Sun?) strip.
But where is it?
How to find one?
Re: strip for Solaris 9 / Sparc
by James Carlson » Thu, 10 Nov 2005 00:58:11 GMT
Jacek Popwski < XXXX@XXXXX.COM > writes:
It's /usr/ccs/bin/strip, and it's delivered by the SUNWbtool package,
which is part of the SUNWCptoo cluster, which in turn is installed
automatically if you chose SUNWCprog ("Developer System Support") or
higher during install.
--
James Carlson, KISS Network < XXXX@XXXXX.COM >
Sun Microsystems / 1 Network Drive 71.232W Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757 42.496N Fax +1 781 442 1677
Re: strip for Solaris 9 / Sparc
by Jacek Popwski » Thu, 10 Nov 2005 01:03:56 GMT
Re: strip for Solaris 9 / Sparc
by Casper H.S. Dik » Thu, 10 Nov 2005 02:48:33 GMT
=?ISO-8859-2?Q?Jacek_Pop=B3awski?= < XXXX@XXXXX.COM > writes:
/usr/ccs/bin/strip.
--
Expressed in this posting are my opinions. They are in no way related
to opinions held by my employer, Sun Microsystems.
Statements on Sun products included here are not gospel and may
be fiction rather than truth.
Re: strip for Solaris 9 / Sparc
by Keith Thompson » Thu, 10 Nov 2005 06:55:36 GMT
Jacek Popwski < XXXX@XXXXX.COM > writes:
Others have pointed you to /usr/ccs/bin/strip, but I'm curious why GNU
strip doesn't work for you.
% uname -a
SunOS elmak 5.9 Generic_117171-17 sun4u sparc SUNW,Sun-Blade-100 Solaris
% cat hello.c
#include <stdio.h>
int main(void)
{
printf("Hello, world\n");
return 0;
}
% /opt/SUNWspro/bin/cc hello.c -o hello
% ls -l hello
-rwxr-xr-x 1 kst sys200 5228 Nov 8 13:53 hello
% ./hello
Hello, world
% strip --version
GNU strip 2.16.1
Copyright 2005 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License. This program has absolutely no warranty.
% strip hello
% ls -l hello
-rwxr-xr-x 1 kst sys200 3336 Nov 8 13:53 hello
% ./hello
Hello, world
Of course, you can also compile or link with "-s", but that doesn't
help for existing executables.
--
Keith Thompson (The_Other_Keith) XXXX@XXXXX.COM < http://www.**--****.com/ ~kst>
San Diego Supercomputer Center <*> < http://www.**--****.com/ ~kst>
We must do something. This is something. Therefore, we must do this.
Re: strip for Solaris 9 / Sparc
by Jacek Popwski » Thu, 10 Nov 2005 17:40:12 GMT
bash-2.05$ cat application.cc
int main()
{
return 0;
}
bash-2.05$ /opt/sfw/gcc-3/bin/g++ application.cc -o application
bash-2.05$ ./application
bash-2.05$ /opt/sfw/sparc-sun-solaris2.9/bin/strip application
BFD: stX4aWSn: warning: allocated section `.interp' not in segment
bash-2.05$ ./application
application: Cannot find ELF
Killed
bash-2.05$ /opt/sfw/gcc-3/bin/g++ --version
g++ (GCC) 3.3.2
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
bash-2.05$ /opt/sfw/sparc-sun-solaris2.9/bin/strip --version
GNU strip 2.11
Copyright 1997, 98, 99, 2000, 2001 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License. This program has absolutely no warranty.
bash-2.05$ uname -a
SunOS LABLupus 5.9 Generic_118558-11 sun4u sparc SUNW,Ultra-5_10
Re: strip for Solaris 9 / Sparc
by Casper H.S. Dik » Thu, 10 Nov 2005 17:56:01 GMT
=?ISO-8859-2?Q?Jacek_Pop=B3awski?= < XXXX@XXXXX.COM > writes:
Looks like it corrupted the application.
Casper
--
Expressed in this posting are my opinions. They are in no way related
to opinions held by my employer, Sun Microsystems.
Statements on Sun products included here are not gospel and may
be fiction rather than truth.
Re: strip for Solaris 9 / Sparc
by Oscar del Rio » Fri, 11 Nov 2005 02:53:56 GMT
Known bug in older versions of gnu strip, fixed in 2002:
http://www.**--****.com/
Re: strip for Solaris 9 / Sparc
by Rodrick Brown » Sat, 12 Nov 2005 14:08:24 GMT
Is there even a valid reason to strip binaries these days? I mean saving the
few bytes to loose all that usefull debugging infromation just doesnt make
sense this day age.
--
Rodrick R. Brown
Senior IT Consultant
http://www.**--****.com/
rodrick.brown[<@>]gmail.com
When in 1986 Apple bought a Cray X-MP and announced that they would use it
to design the next Apple Macintosh, Seymour Cray replied, "This is very
interesting because I am using an Apple Macintosh to design the Cray-2
supercomputer."
Re: strip for Solaris 9 / Sparc
by Logan Shaw » Sat, 12 Nov 2005 15:20:17 GMT
I suppose if you sell commercial software that doesn't come with a
license for the source then there could be a valid reason to want
to do it. :-)
Also, isn't it still the case that de{*filter*}s cope better with
unoptimized (or lightly optimizd) code so that you still want to
have debug and non-debug builds of the software, or has compiler
and de{*filter*} technology improved while I wasn't looking? (Could
happen...)
- Logan
Re: strip for Solaris 9 / Sparc
by Casper H.S. Dik » Sat, 12 Nov 2005 22:16:35 GMT
Logan Shaw < XXXX@XXXXX.COM > writes:
A dynamiclly linked program's object will contain a dynamic symbol table
which contains a large subset of a program's symbol (anything not
of static linkage)
Some de{*filter*}s don't care about the level of optimization; but they
won't tell you what bits of source correspond to which bits of binary.
Casper
--
Expressed in this posting are my opinions. They are in no way related
to opinions held by my employer, Sun Microsystems.
Statements on Sun products included here are not gospel and may
be fiction rather than truth.
Similar Threads:
1.porting solaris/SPARC app to Solaris/x86 questions
2.catopen() behavior on solaris-opetron and solaris-sparc
Hello,
catopen() function behaves in different ways on solaris-sparc and
solaris-opteron O/S platforms.
If NLSPATH is exported pointing to NLSPATH=/home/expert/msg/%N and
test.cat file is in /home/expert/msg/ folder in that case
if we call :
rc = catopen("test", 0)
then on solaris-sparc it returns -1 whereas on solaris-opteron
platform it succeed.
which is the correct behavior ... ??
Thanks
Mukesh
3.Gcc On Solaris Sparc Versus Solaris Intel: Repost With Error Information Included
Gentle People?
I am currently running gcc 3.1 on both my Ultra 5
Solaris 8 Sparc machine and on Solaris 8 Intel machine.
The C source code that compiles and executes perfectly on
the Ultra 5 will not compile on the Intel machine!
The compilation errors, shown below, seem to relate to
syntax errors, and not simply missing files. Remember this
same code compiles perfectly on the Sparc machine. There is no
inline assembly language or obvious machine dependent code
involved.
Why would there be such a difference in the between gcc on
Sparc versus Intel?
Someone mentioned that the header files are different:
I wonder why? I would of thought at that level of abstraction
they would be identical.
Thanks for the help.
Thomas Dineen
gcc cmd_parser.c -ggdb -w -c -o cmd_parser.o
In file included from cmd_parser.c:13:
structures.h:484: parse error before "exec_struct_sun"
structures.h:489: parse error before "Exec_union"
structures.h:498: parse error before ?token
typedef union
{
unsigned char load[BUF_SIZE];
exec_struct_sun Exec_load; // Line 484
} Exec_union;
typedef struct
{
Exec_union un; // Line 489
int n_page_size;
int n_segment_size;
int n_text_offset;
int n_data_offset;
int n_text_rel_offset;
int n_data_rel_offset;
int n_symbol_offset;
int n_string_offset;
} Exec_Struct; // Line 498
// Cut from another .h file:
typedef struct {
unsigned char a_dynamic:1; /* has a __DYNAMIC */
unsigned char a_toolversion:7; /* version of toolset used
create this file */
unsigned char a_machtype; /* machine type */
unsigned short a_magic; /* magic number */
unsigned int a_text; /* size of text segment */
unsigned int a_data; /* size of initialized data */
unsigned int a_bss; /* size of uninitialized data */
unsigned int a_syms; /* size of symbol table */
unsigned int a_entry; /* entry point */
unsigned int a_trsize; /* size of text relocation */
unsigned int a_drsize; /* size of data relocation */
} exec_struct_sun;
4.Sparc Solaris better than x86 Solaris?
5.Gcc On Solaris Sparc Versus Solaris Intel
Gentle People?
I am currently running gcc 3.1 on both my Ultra 5
Solaris 8 Sparc machine and on Solaris 8 Intel machine.
C source code that compiles and executes perfectly on
the Ultra 5 will not compile on the Intel machine!
The compilation errors seem to relate to syntax errors,
and not simply missing files. Remember this same code compiles
perfectly on the Sparc machine.
Why would there be such a difference in the between gcc on
Sparc versus Intel?
Also I have noted that the Sparc and Intel assemblers use
different directives or pseudo-ops. This was a suprise! I of
course expected different neumonics to represent the Intel
Assembly Language, but different assembler directives or
pseudo-ops? I expected more cross platform commonality.
Thanks for the help.
Thomas Dineen
6. Reading usenet on solaris [Was: Ximian Evolution on Solaris 9 sparc
7. Transitive Solaris/SPARC - Solaris/x86 solution
8. Solaris Management Console 2.1 on Solaris 9/SPARC