public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
* Backticks (`) in makefile
@ 2003-06-20  1:13 Sisyphus
  2003-06-20  2:11 ` Ben Davis
  0 siblings, 1 reply; 11+ messages in thread
From: Sisyphus @ 2003-06-20  1:13 UTC (permalink / raw)
  To: gcc

Hi,

I have perl-5.8.0 on Win32 built with gcc and dmake. ('dmake' is the norm
when building perl on Win32 with gcc - there is pesumably some problem(s) if
'make' is used.)

I'm trying to statically link a perl module and one of the makefiles
generated contains the following:

$(MAP_LINKCMD) -o $@ $(OPTIMIZE) ./perlmain$(OBJ_EXT) $(LDFROM)
$(MAP_STATIC) $(LLIBPERL) `cat $(INST_ARCHAUTODIR)/extralibs.all`
$(MAP_PRELIBS)

(That's all on one line in the makefile.)

On Linux (with 'make') I'm told there's no problem building this module
statically linked, but dmake obviously doesn't inderstand the significance
of the backticks. I get the error that there is no such file or directory as
`cat. I don't understand the significance of the backticks, either. Anyone
got some advice on what they mean - or on where I can find some relevant
documentation - so that I might be able to devise a hack ?

'cat' will also be meaningless on win32, but I'm hoping that changing it to
'type' will take care of that. The main problem is to work out what to do
about those backticks.

I tried some wild guesses - like deleting the backticks, and changing them
to quotes. If I delete '`cat .....`' entirely I end up with an "undefined
reference" to a couple of functions.

Cheers,
Rob

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

* Re: Backticks (`) in makefile
  2003-06-20  1:13 Backticks (`) in makefile Sisyphus
@ 2003-06-20  2:11 ` Ben Davis
  2003-06-20 18:51   ` Sisyphus
  0 siblings, 1 reply; 11+ messages in thread
From: Ben Davis @ 2003-06-20  2:11 UTC (permalink / raw)
  To: Sisyphus, gcc

The backticks aren't interpreted by the makefile, but are passed to the shell. 
A Bourne-style shell like bash, when confronted with the following:

   gcc ... `cat blah`

will execute 'cat blah', capture its stdout and place the contents on the 
command line. So if 'blah' contains:

   foo.o
   bar.o

then the command will become:

   gcc ... foo.o blah.o

Hope that helps :)

Ben

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

* Re: Backticks (`) in makefile
  2003-06-20  2:11 ` Ben Davis
@ 2003-06-20 18:51   ` Sisyphus
  2003-06-22 14:24     ` Tapu
  0 siblings, 1 reply; 11+ messages in thread
From: Sisyphus @ 2003-06-20 18:51 UTC (permalink / raw)
  To: Ben Davis, gcc


----- Original Message -----
From: "Ben Davis" <bnd25@cam.ac.uk>
To: "Sisyphus" <kalinabears@iinet.net.au>; "gcc" <gcc-help@gcc.gnu.org>
Sent: Friday, June 20, 2003 12:08 PM
Subject: Re: Backticks (`) in makefile


> The backticks aren't interpreted by the makefile, but are passed to the
shell.
> A Bourne-style shell like bash, when confronted with the following:
>
>    gcc ... `cat blah`
>
> will execute 'cat blah', capture its stdout and place the contents on the
> command line. So if 'blah' contains:
>
>    foo.o
>    bar.o
>
> then the command will become:
>
>    gcc ... foo.o blah.o
>
> Hope that helps :)
>
> Ben
>
>

Indeed it does.
This means that if 'blah' is empty (as it is in my case) I should be able to
simply delete `cat blah` and it will work as intended.
There is still a question mark over whether my 'blah' *should* be empty -
I'll have to look into that.

Thanks Ben.

Cheers,
Rob

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

* Re: Backticks (`) in makefile
  2003-06-20 18:51   ` Sisyphus
@ 2003-06-22 14:24     ` Tapu
  2003-06-22 14:44       ` Eljay Love-Jensen
  0 siblings, 1 reply; 11+ messages in thread
From: Tapu @ 2003-06-22 14:24 UTC (permalink / raw)
  To: gcc

Hi
Is libstdc++-V3 compatible with gcc 2.95.3?
And also which is the latest stable version of gcc?

Thanks


"Don't scream for the Change. Become the Change."

.......................................................
Anirudha Sarangi
Real Time Systems Group
R&D, CMC Centre
........................................................
----- Original Message -----
From: "Sisyphus" <kalinabears@iinet.net.au>
To: "Ben Davis" <bnd25@cam.ac.uk>; "gcc" <gcc-help@gcc.gnu.org>
Sent: Saturday, June 21, 2003 12:17 AM
Subject: Re: Backticks (`) in makefile


>
> ----- Original Message -----
> From: "Ben Davis" <bnd25@cam.ac.uk>
> To: "Sisyphus" <kalinabears@iinet.net.au>; "gcc" <gcc-help@gcc.gnu.org>
> Sent: Friday, June 20, 2003 12:08 PM
> Subject: Re: Backticks (`) in makefile
>
>
> > The backticks aren't interpreted by the makefile, but are passed to the
> shell.
> > A Bourne-style shell like bash, when confronted with the following:
> >
> >    gcc ... `cat blah`
> >
> > will execute 'cat blah', capture its stdout and place the contents on
the
> > command line. So if 'blah' contains:
> >
> >    foo.o
> >    bar.o
> >
> > then the command will become:
> >
> >    gcc ... foo.o blah.o
> >
> > Hope that helps :)
> >
> > Ben
> >
> >
>
> Indeed it does.
> This means that if 'blah' is empty (as it is in my case) I should be able
to
> simply delete `cat blah` and it will work as intended.
> There is still a question mark over whether my 'blah' *should* be empty -
> I'll have to look into that.
>
> Thanks Ben.
>
> Cheers,
> Rob
>
>


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

* Re: Backticks (`) in makefile
  2003-06-22 14:24     ` Tapu
@ 2003-06-22 14:44       ` Eljay Love-Jensen
  2003-06-22 14:51         ` Tapu
       [not found]         ` <00ea01c338d4$2f191120$bd0c10ac@cmcltd.com>
  0 siblings, 2 replies; 11+ messages in thread
From: Eljay Love-Jensen @ 2003-06-22 14:44 UTC (permalink / raw)
  To: Tapu, gcc

Hi Tapu,

 >Is libstdc++-V3 compatible with gcc 2.95.3?

As I understand it, no.

GCC 2.95.3 uses libstdc++ v2.10 (or v2.90 for the adventurous, IIRC).

GCC 3.x uses libstdc++ v3.

STLport <http://www.stlport.org/> supports GCC 2.95.3.

 >And also which is the latest stable version of gcc?

I'm using GCC 3.2 on Windows NT / Cygwin.  (GCC 3.2.3 is the most recent 
bug-fix version of GCC 3.2.x.)

I'm using GCC 2.95.3 on Solaris.

I'm using GCC 3.1 on Darwin 6.6 / OS X 10.2.6.

GCC 3.3 is the latest release.  (Release versions of GCC are stable versions.)

GCC 3.4 is the current bleeding edge, undergoing active development.

HTH,
--Eljay


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

* Re: Backticks (`) in makefile
  2003-06-22 14:44       ` Eljay Love-Jensen
@ 2003-06-22 14:51         ` Tapu
       [not found]         ` <00ea01c338d4$2f191120$bd0c10ac@cmcltd.com>
  1 sibling, 0 replies; 11+ messages in thread
From: Tapu @ 2003-06-22 14:51 UTC (permalink / raw)
  To: gcc

Thanks for both of your replies, Eljay.
It was really helopful for us as we are new to this field.

So you mean to say c++filt  is the only c++ specific utility?.
We are asking this because we have already one binutils(v2.9.1) for a C
cross compiler based on gcc 2.95.3 for a new architecture. We want to
upgrade the same to c++ cross compilation.
One more thing. Do we have to modify backend files we already have for C
Compiler to make it work for C++ Compiler also. I mean target.md, target.c
and target.h files. What I understand from Stallman is that we need not.


"Don't scream for the Change. Become the Change."

.......................................................
Anirudha Sarangi
Real Time Systems Group
R&D, CMC Centre
........................................................
----- Original Message -----
From: "Eljay Love-Jensen" <eljay@adobe.com>
To: "Tapu" <anirudha@cmcltd.com>; "gcc" <gcc-help@gcc.gnu.org>
Sent: Sunday, June 22, 2003 8:13 PM
Subject: Re: Backticks (`) in makefile


> Hi Tapu,
>
>  >Is libstdc++-V3 compatible with gcc 2.95.3?
>
> As I understand it, no.
>
> GCC 2.95.3 uses libstdc++ v2.10 (or v2.90 for the adventurous, IIRC).
>
> GCC 3.x uses libstdc++ v3.
>
> STLport <http://www.stlport.org/> supports GCC 2.95.3.
>
>  >And also which is the latest stable version of gcc?
>
> I'm using GCC 3.2 on Windows NT / Cygwin.  (GCC 3.2.3 is the most recent
> bug-fix version of GCC 3.2.x.)
>
> I'm using GCC 2.95.3 on Solaris.
>
> I'm using GCC 3.1 on Darwin 6.6 / OS X 10.2.6.
>
> GCC 3.3 is the latest release.  (Release versions of GCC are stable
versions.)
>
> GCC 3.4 is the current bleeding edge, undergoing active development.
>
> HTH,
> --Eljay
>
>
>
>


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

* Re: Backticks (`) in makefile
       [not found]         ` <00ea01c338d4$2f191120$bd0c10ac@cmcltd.com>
@ 2003-06-23 12:29           ` Eljay Love-Jensen
  2003-06-23 12:39             ` Tapu
  0 siblings, 1 reply; 11+ messages in thread
From: Eljay Love-Jensen @ 2003-06-23 12:29 UTC (permalink / raw)
  To: Tapu; +Cc: gcc-help

Hi Tapu,

 >So you mean to say c++filt  is the only c++ specific utility?.

Most of those binutil utilities are C++ tools as well, because they are 
general purpose.

The c++filt is the only one that is C++-centric, since it is a demangler 
for several C++ name mangling conventions.

 >We want to upgrade the same to c++ cross compilation.

I recommend upgrading all of binutil en masse, instead of piecemeal 
utility-by-utility upgrade.

I also recommend to use the latest-and-greatest binutil.

 >One more thing. Do we have to modify backend files we already have for C 
Compiler to make it work for C++ Compiler also. I mean target.md, target.c 
and target.h files. What I understand from Stallman is that we need not.

Richard Stallman is a guru amongst gurus, and I defer to his 
expertise.  Even Ada guru (and MULTICS advocate) Paul Stachour has highly 
praised Stallman.

The only situation that I can think of that you'd have to modify your 
backend files is if they have bugs in them.

Sincerely,
--Eljay


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

* Re: Backticks (`) in makefile
  2003-06-23 12:29           ` Eljay Love-Jensen
@ 2003-06-23 12:39             ` Tapu
  2003-06-23 14:07               ` John Love-Jensen
  0 siblings, 1 reply; 11+ messages in thread
From: Tapu @ 2003-06-23 12:39 UTC (permalink / raw)
  To: Eljay Love-Jensen; +Cc: gcc-help

Thanks a lot..
As we've also to port the libstdc++-v3, some small doubts ..
The idea i got is, the standard lib in C++ will have some OS specific
libraries and some will be architectute specific..Is it true ?
 How to identify them ?

The next in line is, regarding ABIs ..
For the compiler we'll have to define one ABI.. And again for standard lib
in C++, we'll again have to define some C++ ABI..At least that's what i
understood..

In which way they differ ?

Bye


"Don't scream for the Change. Become the Change."

.......................................................
Anirudha Sarangi
Real Time Systems Group
R&D, CMC Centre
........................................................
----- Original Message -----
From: "Eljay Love-Jensen" <eljay@adobe.com>
To: "Tapu" <anirudha@cmcltd.com>
Cc: <gcc-help@gcc.gnu.org>
Sent: Monday, June 23, 2003 5:18 PM
Subject: Re: Backticks (`) in makefile


> Hi Tapu,
>
>  >So you mean to say c++filt  is the only c++ specific utility?.
>
> Most of those binutil utilities are C++ tools as well, because they are
> general purpose.
>
> The c++filt is the only one that is C++-centric, since it is a demangler
> for several C++ name mangling conventions.
>
>  >We want to upgrade the same to c++ cross compilation.
>
> I recommend upgrading all of binutil en masse, instead of piecemeal
> utility-by-utility upgrade.
>
> I also recommend to use the latest-and-greatest binutil.
>
>  >One more thing. Do we have to modify backend files we already have for C
> Compiler to make it work for C++ Compiler also. I mean target.md, target.c
> and target.h files. What I understand from Stallman is that we need not.
>
> Richard Stallman is a guru amongst gurus, and I defer to his
> expertise.  Even Ada guru (and MULTICS advocate) Paul Stachour has highly
> praised Stallman.
>
> The only situation that I can think of that you'd have to modify your
> backend files is if they have bugs in them.
>
> Sincerely,
> --Eljay
>
>
>
>
"Don't scream for the Change. Become the Change."

.......................................................
Anirudha Sarangi
Real Time Systems Group
R&D, CMC Centre
........................................................
----- Original Message -----
From: "Eljay Love-Jensen" <eljay@adobe.com>
To: "Tapu" <anirudha@cmcltd.com>
Cc: <gcc-help@gcc.gnu.org>
Sent: Monday, June 23, 2003 5:18 PM
Subject: Re: Backticks (`) in makefile


> Hi Tapu,
>
>  >So you mean to say c++filt  is the only c++ specific utility?.
>
> Most of those binutil utilities are C++ tools as well, because they are
> general purpose.
>
> The c++filt is the only one that is C++-centric, since it is a demangler
> for several C++ name mangling conventions.
>
>  >We want to upgrade the same to c++ cross compilation.
>
> I recommend upgrading all of binutil en masse, instead of piecemeal
> utility-by-utility upgrade.
>
> I also recommend to use the latest-and-greatest binutil.
>
>  >One more thing. Do we have to modify backend files we already have for C
> Compiler to make it work for C++ Compiler also. I mean target.md, target.c
> and target.h files. What I understand from Stallman is that we need not.
>
> Richard Stallman is a guru amongst gurus, and I defer to his
> expertise.  Even Ada guru (and MULTICS advocate) Paul Stachour has highly
> praised Stallman.
>
> The only situation that I can think of that you'd have to modify your
> backend files is if they have bugs in them.
>
> Sincerely,
> --Eljay
>
>
>
>


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

* Re: Backticks (`) in makefile
  2003-06-23 12:39             ` Tapu
@ 2003-06-23 14:07               ` John Love-Jensen
  2003-06-23 14:53                 ` dark rotter
  2003-06-24 23:38                 ` LLeweLLyn Reese
  0 siblings, 2 replies; 11+ messages in thread
From: John Love-Jensen @ 2003-06-23 14:07 UTC (permalink / raw)
  To: Tapu; +Cc: gcc-help

Hi Tapu,

>The idea I have is: the standard lib in C++ will have some OS specific
libraries and some will be architecture specific. Is it true?

I believe you are correct.

>How to identify them?

By convention, OS specific headers usually reside in the sys/... location.

Architecture specific accommodations are in the header file as
isolated-embedded #if defined()...#endif blocks, which are usually very
platform-centric code activated by the preprocessor.

>The next in line is, regarding ABIs .. For the compiler we'll have to define
one ABI.. And again for standard lib in C++, we'll again have to define some C++
ABI..At least that's what i understood..

>In which way they differ ?

I don't have an URL that describes the detailed differences between the C
ABI (which is well established), and the C++ ABI (which has evolved from GCC
2.95, RedHat's 2.96, GCC 3.0, GCC 3.1, GCC 3.2 and GCC 3.3).

The C++ ABI is still somewhat of a moving target, in that GCC 3.3 is,
hopefully, quiescent.  However, when/if a C++ ABI cross-vendor standard
becomes available, I suspect that the GCC C++ ABI will change again, to
accommodate the anticipated standard.

The C++ ABI covers things like:  exception handling, name mangling, scoped
enumerations, inner classes/structs, calling convention, RTTI, dynamic
casting, and probably a bazillion details with which I am unaware.

(My hat is off to the unsung heroes who have tackled the C++ ABI.)

Sincerely,
--Eljay

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

* Re: Backticks (`) in makefile
  2003-06-23 14:07               ` John Love-Jensen
@ 2003-06-23 14:53                 ` dark rotter
  2003-06-24 23:38                 ` LLeweLLyn Reese
  1 sibling, 0 replies; 11+ messages in thread
From: dark rotter @ 2003-06-23 14:53 UTC (permalink / raw)
  To: gcc-help


--- John Love-Jensen <eljay@adobe.com> wrote:
> Hi Tapu,
> 
> >The idea I have is: the standard lib in C++ will
> have some OS specific
> libraries and some will be architecture specific. Is
> it true?
> 
> I believe you are correct.
> 
> >How to identify them?
> 
> By convention, OS specific headers usually reside in
> the sys/... location.
> 
> Architecture specific accommodations are in the
> header file as
> isolated-embedded #if defined()...#endif blocks,
> which are usually very
> platform-centric code activated by the preprocessor.
> 
> >The next in line is, regarding ABIs .. For the
> compiler we'll have to define
> one ABI.. And again for standard lib in C++, we'll
> again have to define some C++
> ABI..At least that's what i understood..
> 
> >In which way they differ ?
> 
> I don't have an URL that describes the detailed
> differences between the C
> ABI (which is well established), and the C++ ABI
> (which has evolved from GCC
> 2.95, RedHat's 2.96, GCC 3.0, GCC 3.1, GCC 3.2 and
> GCC 3.3).
> 
> The C++ ABI is still somewhat of a moving target, in
> that GCC 3.3 is,
> hopefully, quiescent.  However, when/if a C++ ABI
> cross-vendor standard
> becomes available, I suspect that the GCC C++ ABI
> will change again, to
> accommodate the anticipated standard.
> 
> The C++ ABI covers things like:  exception handling,
> name mangling, scoped
> enumerations, inner classes/structs, calling
> convention, RTTI, dynamic
> casting, and probably a bazillion details with which
> I am unaware.
> 
> (My hat is off to the unsung heroes who have tackled
> the C++ ABI.)
> 
> Sincerely,
> --Eljay
> 


__________________________________
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
http://sbc.yahoo.com

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

* Re: Backticks (`) in makefile
  2003-06-23 14:07               ` John Love-Jensen
  2003-06-23 14:53                 ` dark rotter
@ 2003-06-24 23:38                 ` LLeweLLyn Reese
  1 sibling, 0 replies; 11+ messages in thread
From: LLeweLLyn Reese @ 2003-06-24 23:38 UTC (permalink / raw)
  To: John Love-Jensen; +Cc: Tapu, gcc-help

John Love-Jensen <eljay@adobe.com> writes:

> Hi Tapu,
> 
> >The idea I have is: the standard lib in C++ will have some OS specific
> libraries and some will be architecture specific. Is it true?
> 
> I believe you are correct.
> 
> >How to identify them?
> 
> By convention, OS specific headers usually reside in the sys/... location.
> 
> Architecture specific accommodations are in the header file as
> isolated-embedded #if defined()...#endif blocks, which are usually very
> platform-centric code activated by the preprocessor.
> 
> >The next in line is, regarding ABIs .. For the compiler we'll have to define
> one ABI.. And again for standard lib in C++, we'll again have to define some C++
> ABI..At least that's what i understood..
> 
> >In which way they differ ?
> 
> I don't have an URL that describes the detailed differences between the C
> ABI (which is well established), and the C++ ABI (which has evolved from GCC
> 2.95, RedHat's 2.96, GCC 3.0, GCC 3.1, GCC 3.2 and GCC 3.3).
> 
> The C++ ABI is still somewhat of a moving target, in that GCC 3.3 is,
> hopefully, quiescent.  However, when/if a C++ ABI cross-vendor standard
> becomes available, I suspect that the GCC C++ ABI will change again, to
> accommodate the anticipated standard.

Here is a cross-vendor ABI:

http://www.codesourcery.com/cxx-abi/

gcc 3.x tries to meet that standard. 3.1.0, 3.2.0, 3.3.0 are all
    releases in which abi-breaking bugfixes had to be introduced; in
    each case gcc did not correctly implement the abi (or the abi
    changed).

However that ABI is for the core language, and does not include the
    standard library.

> 
> The C++ ABI covers things like:  exception handling, name mangling, scoped
> enumerations, inner classes/structs, calling convention, RTTI, dynamic
> casting, and probably a bazillion details with which I am unaware.

Since most programs use library facilities like std::cout, it may also
    include things such as the sizes and layouts of objects 
    passed to and from functions in libstdc++.so , and of global
    objects like std::cout. To say nothing of function names ...

> 
> (My hat is off to the unsung heroes who have tackled the C++ ABI.)

Agreed.

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

end of thread, other threads:[~2003-06-24 23:38 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-06-20  1:13 Backticks (`) in makefile Sisyphus
2003-06-20  2:11 ` Ben Davis
2003-06-20 18:51   ` Sisyphus
2003-06-22 14:24     ` Tapu
2003-06-22 14:44       ` Eljay Love-Jensen
2003-06-22 14:51         ` Tapu
     [not found]         ` <00ea01c338d4$2f191120$bd0c10ac@cmcltd.com>
2003-06-23 12:29           ` Eljay Love-Jensen
2003-06-23 12:39             ` Tapu
2003-06-23 14:07               ` John Love-Jensen
2003-06-23 14:53                 ` dark rotter
2003-06-24 23:38                 ` LLeweLLyn Reese

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).