User Tools

Site Tools


go:internals:textflag

This is an old revision of the document!


Table of Contents

textflag

A flag for the “ld” linker, with special link-time information about a function.

textflag 7

Extracted from a comment in pkg/runtime/proc.c:

'' * Newproc and deferproc need to be textflag 7 * (no possible stack split when nearing overflow) ''

See split stacks.

Usage

In “cc” C, add a pragma directive before the function definition – example:

'' #pragma textflag 7 void somefunction(int x, int y) {

  //...

} ''

In “asm” assembly, put the number 7 in function's entry point definition line – example:

'' TEXT runtime·tstart(SB),7,$0 ''

Note: These C and assembly syntaxes are supported only by the C compilers and assemblers shipped with Go (i.e. the modified Plan 9 ones). Stock Gcc does not have the ability to set these flags (but maybe a Gcc with gccgo integrated in it can?)

go/internals/textflag.1551696500.txt.gz · Last modified: (external edit)