public inbox for gas2@sourceware.org
 help / color / mirror / Atom feed
* Re: binutils 2.5.2l.10 is released.
       [not found] <9505012011.AA14501@gnu.mc.xerox.com>
@ 1995-05-01 13:29 ` H.J. Lu
  1995-05-01 13:45   ` Marty Leisner
  0 siblings, 1 reply; 5+ messages in thread
From: H.J. Lu @ 1995-05-01 13:29 UTC (permalink / raw)
  To: Marty Leisner; +Cc: Ken Raeburn, gas2

> 
> > I don't remember that. I understand -static will turn off the lib*.so*
> > search.
> > 
> > -- 
> > H.J. Lu
> > NYNEX Science and Technology, Inc.			hjl@nynexst.com
> 
> 
> I never got around to implementing this behavior in gcc (I complained
> about it for years...)
> 
> On Sun, the linker allows you to do:
> 
> ld *.o -lfoo1 -Bstatic -lfoo2 -Bdynamic -lfoo3
> 
> (essentially specially which libraries to link statically).
> 
> In order to get the same behavior, you need to do:
> ld *.o -lfoo1 /usr/lib/libfoo.a -lfoo3
> with gcc/ld
> 

I will implement it if noone does and I have the time. First we
have to agree on what syntax to use. -Bstatic/-Bdynamic or
-static/-dynamic?


-- 
H.J. Lu
NYNEX Science and Technology, Inc.			hjl@nynexst.com


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: binutils 2.5.2l.10 is released.
  1995-05-01 13:29 ` binutils 2.5.2l.10 is released H.J. Lu
@ 1995-05-01 13:45   ` Marty Leisner
  1995-05-02  0:05     ` -static -lfoo -dynamic -lbar H.J. Lu
  0 siblings, 1 reply; 5+ messages in thread
From: Marty Leisner @ 1995-05-01 13:45 UTC (permalink / raw)
  To: H.J. Lu; +Cc: Ken Raeburn, gas2

>> 
>
>I will implement it if noone does and I have the time. First we
>have to agree on what syntax to use. -Bstatic/-Bdynamic or
>-static/-dynamic?
>
>
>-- 
>H.J. Lu
>NYNEX Science and Technology, Inc.			hjl@nynexst.com

Thanks...if you understand how gcc is organized  (I looked at this
in 1.x and saw it was a lot to understand).

This should be trivial...Use -static/-dynamic [does gnu ld understand 
this?]

(its not trivial to even see if ld works this way ;-( )

Doing this is a big win.
marty


^ permalink raw reply	[flat|nested] 5+ messages in thread

* -static -lfoo -dynamic -lbar
  1995-05-01 13:45   ` Marty Leisner
@ 1995-05-02  0:05     ` H.J. Lu
  1995-05-02 10:27       ` Mike Meissner
  0 siblings, 1 reply; 5+ messages in thread
From: H.J. Lu @ 1995-05-02  0:05 UTC (permalink / raw)
  To: Marty Leisner; +Cc: gas2, Ken Raeburn

> 
> 
> >> 
> >
> >I will implement it if noone does and I have the time. First we
> >have to agree on what syntax to use. -Bstatic/-Bdynamic or
> >-static/-dynamic?
> >
> >
> >-- 
> >H.J. Lu
> >NYNEX Science and Technology, Inc.			hjl@nynexst.com
> 
> Thanks...if you understand how gcc is organized  (I looked at this
> in 1.x and saw it was a lot to understand).
> 

gcc/gnu getopt liks to reorder options and I cannot use -dynamic
nor -Bxxxxx. You have to use -Wl,-xxxxxx for the time being.

> This should be trivial...Use -static/-dynamic [does gnu ld understand 
> this?]
> 

No. Use -Bstatic/-Bdynamic.

> (its not trivial to even see if ld works this way ;-( )
> 

Try this one on top of binutils 2.5.2l.11. I have included this
in binutils 2.5.2l.12. You have to use:

# gcc -v foo.o -Wl,-Bstatic -lm -Wl,-Bdynamic 

Please let me know if it works for you. BTW, it may work with
the current snapshot.


-- 
H.J. Lu
NYNEX Science and Technology, Inc.			hjl@nynexst.com
----
RCS file: /home/cvs/gnu/binutils/ld/ldfile.c,v
retrieving revision 1.5
diff -c -r1.5 ldfile.c
*** 1.5	1995/04/27 03:24:16
--- ldfile.c	1995/05/02 06:45:45
***************
*** 183,189 ****
  	   arch != (search_arch_type *) NULL;
  	   arch = arch->next)
  	{
! 	  if (config.dynamic_link)
  	    {
  	      if (ldemul_open_dynamic_archive (arch->name, entry))
  		return;
--- 183,189 ----
  	   arch != (search_arch_type *) NULL;
  	   arch = arch->next)
  	{
! 	  if (entry->dynamic_link)
  	    {
  	      if (ldemul_open_dynamic_archive (arch->name, entry))
  		return;
===================================================================
RCS file: /home/cvs/gnu/binutils/ld/ldlang.h,v
retrieving revision 1.1.1.2
diff -c -r1.1.1.2 ldlang.h
*** 1.1.1.2	1995/02/22 02:02:31
--- ldlang.h	1995/05/02 06:45:45
***************
*** 229,234 ****
--- 229,237 ----
    asection *common_section;
    asection *common_output_section;
    boolean complained;
+ 
+   /* This is used to overwrite the global one. */
+   boolean dynamic_link;
  } lang_input_statement_type;
  
  typedef struct
===================================================================
RCS file: /home/cvs/gnu/binutils/ld/lexsup.c,v
retrieving revision 1.1.1.3
diff -c -r1.1.1.3 lexsup.c
*** 1.1.1.3	1995/03/24 02:20:43
--- lexsup.c	1995/05/02 06:45:45
***************
*** 53,58 ****
--- 53,62 ----
  {
    int ingroup = 0;
  
+   int use_last_link_config = 0;
+   boolean last_is_dynamic_link;
+   lang_input_statement_type * library;
+ 
    /* Starting the short option string with '-' is for programs that
       expect options and other ARGV-elements in any order and that care about
       the ordering of the two.  We describe each non-option ARGV-element
***************
*** 193,201 ****
--- 197,209 ----
  	  break;
  	case OPTION_CALL_SHARED:
  	  config.dynamic_link = true;
+ 	  use_last_link_config = 1;
+ 	  last_is_dynamic_link = true;
  	  break;
  	case OPTION_NON_SHARED:
  	  config.dynamic_link = false;
+ 	  use_last_link_config = 1;
+ 	  last_is_dynamic_link = false;
  	  break;
  	case 'd':
  	  command_line.force_common_definition = true;
***************
*** 245,252 ****
  	  ldfile_add_library_path (optarg, true);
  	  break;
  	case 'l':
! 	  lang_add_input_file (optarg, lang_input_file_is_l_enum,
! 			       (char *) NULL);
  	  break;
  	case 'M':
  	  config.map_filename = "-";
--- 253,263 ----
  	  ldfile_add_library_path (optarg, true);
  	  break;
  	case 'l':
! 	  library = lang_add_input_file (optarg,
! 					 lang_input_file_is_l_enum,
! 					 (char *) NULL);
! 	  library->dynamic_link = use_last_link_config ?
! 		last_is_dynamic_link : config.dynamic_link;
  	  break;
  	case 'M':
  	  config.map_filename = "-";


^ permalink raw reply	[flat|nested] 5+ messages in thread

* -static -lfoo -dynamic -lbar
  1995-05-02  0:05     ` -static -lfoo -dynamic -lbar H.J. Lu
@ 1995-05-02 10:27       ` Mike Meissner
  1995-05-02 10:57         ` H.J. Lu
  0 siblings, 1 reply; 5+ messages in thread
From: Mike Meissner @ 1995-05-02 10:27 UTC (permalink / raw)
  To: hjl; +Cc: leisner, gas2, raeburn

| No. Use -Bstatic/-Bdynamic.

Except that GCC uses -B for other purposes.

-- 
Michael Meissner, Cygnus Support (East Coast)
Suite 105, 48 Grove Street, Somerville, MA 02144, USA
meissner@cygnus.com,	617-629-3016 (office),	617-629-3010 (fax)


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: -static -lfoo -dynamic -lbar
  1995-05-02 10:27       ` Mike Meissner
@ 1995-05-02 10:57         ` H.J. Lu
  0 siblings, 0 replies; 5+ messages in thread
From: H.J. Lu @ 1995-05-02 10:57 UTC (permalink / raw)
  To: Mike Meissner; +Cc: leisner, gas2, Ken Raeburn

> 
> | No. Use -Bstatic/-Bdynamic.
> 
> Except that GCC uses -B for other purposes.

And gcc may reorder flags. That is why I said -Wl,xxxxxx.

> 

BTW, one should not make changes at 2:00am in the morning. I will
make a new simpler patch when I get home today.

-- 
H.J. Lu
NYNEX Science and Technology, Inc.			hjl@nynexst.com


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~1995-05-02 10:57 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <9505012011.AA14501@gnu.mc.xerox.com>
1995-05-01 13:29 ` binutils 2.5.2l.10 is released H.J. Lu
1995-05-01 13:45   ` Marty Leisner
1995-05-02  0:05     ` -static -lfoo -dynamic -lbar H.J. Lu
1995-05-02 10:27       ` Mike Meissner
1995-05-02 10:57         ` H.J. Lu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).