Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #43749

Re: can linker symbols be defined in C?

From Keith Thompson <kst-u@mib.org>
Newsgroups comp.lang.c
Subject Re: can linker symbols be defined in C?
Date 2014-04-28 14:53 -0700
Organization None to speak of
Message-ID <ln61ltp1ci.fsf@nuthaus.mib.org> (permalink)
References <2231b9bc-305e-4ed5-af87-e203dd64780a@googlegroups.com> <slrn3vfsllthbi.b9a.andrews@sdf.lonestar.org>

Show all headers | View raw


Andrew Smallshaw <andrews@sdf.lonestar.org> writes:
> On 2014-04-28, Ralph Doncaster <ralphdoncaster@gmail.com> wrote:
>> I want to define linker symbols in C.  I can do it using gcc inline
>> assembler:
>> #define STR1(x) #x
>> #define STR(x) STR1(x)
>> ... more macros that calculate TXDELAYCOUNT
>> asm(".global TXDELAY" );
>> asm(".equ TXDELAY, " STR(TXDELAYCOUNT) );
>>
>>
>> Is there a way to do the same thing in standard C11?
>
> No.  The C standards don't even explicitly acknowledge the existence
> of a linker (references to "compiliation units" are the nearest
> you get), never mind providing a method of providing what are
> inevitably platform-specific directions to it.

In fact the C standard does describe linking, though it doesn't refer to
a "linker" as the tool that does it.

N1570 5.1.1.2 describes linking as the 8th and final translation phase:

    All external object and function references are resolved. Library
    components are linked to satisfy external references to functions
    and objects not defined in the current translation. All such
    translator output is collected into a program image which
    contains information needed for execution in its execution
    environment.

But you're correct that the C standard doesn't provide a way to define
linker symbols.

-- 
Keith Thompson (The_Other_Keith) kst-u@mib.org  <http://www.ghoti.net/~kst>
Working, but not speaking, for JetHead Development, Inc.
"We must do something.  This is something.  Therefore, we must do this."
    -- Antony Jay and Jonathan Lynn, "Yes Minister"

Back to comp.lang.c | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

can linker symbols be defined in C? Ralph Doncaster <ralphdoncaster@gmail.com> - 2014-04-28 13:53 -0700
  Re: can linker symbols be defined in C? James Kuyper <jameskuyper@verizon.net> - 2014-04-28 17:15 -0400
  Re: can linker symbols be defined in C? Andrew Smallshaw <andrews@sdf.lonestar.org> - 2014-04-28 21:17 +0000
    Re: can linker symbols be defined in C? Keith Thompson <kst-u@mib.org> - 2014-04-28 14:53 -0700
      Re: can linker symbols be defined in C? glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-04-28 23:28 +0000
    Re: can linker symbols be defined in C? James Kuyper <jameskuyper@verizon.net> - 2014-04-28 18:01 -0400
  Re: can linker symbols be defined in C? jacob navia <jacob@spamsink.net> - 2014-04-29 00:26 +0200
    Re: can linker symbols be defined in C? "Bill Cunningham" <nospam@nspam.invalid> - 2014-04-28 19:39 -0400
    Re: can linker symbols be defined in C? Ian Collins <ian-news@hotmail.com> - 2014-04-29 11:45 +1200
    Re: can linker symbols be defined in C? Ralph Doncaster <ralphdoncaster@gmail.com> - 2014-04-28 20:15 -0700
      Re: can linker symbols be defined in C? Kaz Kylheku <kaz@kylheku.com> - 2014-04-29 04:11 +0000
        Re: can linker symbols be defined in C? Ralph Doncaster <ralphdoncaster@gmail.com> - 2014-04-29 16:29 -0700
      Re: can linker symbols be defined in C? Noob <root@127.0.0.1> - 2014-04-29 08:33 +0200
  Re: can linker symbols be defined in C? Siri Crews <chine.bleu@yahoo.com> - 2014-04-28 16:54 -0700
    Re: can linker symbols be defined in C? Ralph Doncaster <ralphdoncaster@gmail.com> - 2014-04-28 20:01 -0700
  Re: can linker symbols be defined in C? Kaz Kylheku <kaz@kylheku.com> - 2014-04-29 00:20 +0000
    Re: can linker symbols be defined in C? Ralph Doncaster <ralphdoncaster@gmail.com> - 2014-04-28 19:57 -0700

csiph-web