/* Copyright 2017 The Fuchsia Authors. All rights reserved. * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ /* * The C++ compiler generates a reference to this symbol for each static * destructor registered via __cxa_atexit. In our implementation, there is * no need for it, so just define the symbol away rather than wasting a * data word defining it as a real variable somewhere. See * third_party/ulib/musl/src/exit/atexit.c for a more detailed explanation. * * LLD doesn't like it when this uses 0, because it makes that SHN_ABS and * then is broken about handling STV_HIDDEN SHN_ABS symbols; it defines * __ehdr_start as not SHN_ABS (though SHN_ABS is the only thing that * actually makes sense for it), so that avoids the problem. */ PROVIDE_HIDDEN(__dso_handle = __ehdr_start);