/usr/lib/gcc/x86_64-linux-gnu/6/include/d/rt/sections.d is in libgphobos-6-dev 6.4.0-17ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | /**
*
* Copyright: Copyright Digital Mars 2000 - 2012.
* License: Distributed under the
* $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0).
* (See accompanying file LICENSE)
* Authors: Walter Bright, Sean Kelly, Martin Nowak
* Source: $(DRUNTIMESRC src/rt/_sections.d)
*/
module rt.sections;
version (CRuntime_Glibc)
public import rt.sections_elf_shared;
else version (FreeBSD)
public import rt.sections_elf_shared;
else version (Solaris)
public import rt.sections_solaris;
else version (OSX)
public import rt.sections_osx;
else version (CRuntime_DigitalMars)
public import rt.sections_win32;
else version (CRuntime_Microsoft)
public import rt.sections_win64;
else version (CRuntime_Bionic)
public import rt.sections_android;
else
static assert(0, "unimplemented");
import rt.deh, rt.minfo;
template isSectionGroup(T)
{
enum isSectionGroup =
is(typeof(T.init.modules) == immutable(ModuleInfo*)[]) &&
is(typeof(T.init.moduleGroup) == ModuleGroup) &&
(!is(typeof(T.init.ehTables)) || is(typeof(T.init.ehTables) == immutable(FuncTable)[])) &&
is(typeof(T.init.gcRanges) == void[][]) &&
is(typeof({ foreach (ref T; T) {}})) &&
is(typeof({ foreach_reverse (ref T; T) {}}));
}
static assert(isSectionGroup!(SectionGroup));
static assert(is(typeof(&initSections) == void function()));
static assert(is(typeof(&finiSections) == void function()));
static assert(is(typeof(&initTLSRanges) RT == return) &&
is(typeof(&initTLSRanges) == RT function()) &&
is(typeof(&finiTLSRanges) == void function(RT)) &&
is(typeof(&scanTLSRanges) == void function(RT, scope void delegate(void*, void*) nothrow) nothrow));
version (Shared)
{
static assert(is(typeof(&pinLoadedLibraries) == void* function() nothrow));
static assert(is(typeof(&unpinLoadedLibraries) == void function(void*) nothrow));
static assert(is(typeof(&inheritLoadedLibraries) == void function(void*)));
static assert(is(typeof(&cleanupLoadedLibraries) == void function()));
}
|