Under normal situation, the linker throws out all symbols from compilation unit when no symbols are used in the final binary, which is the case for lib/isc/lib.c. This commit adds empty function to lib.c that's being called from different CU (mem.c in this case) and that makes the linker to include all the symbols including the normally unreferenced isc__initialize() and isc__shutdown() in the final binary.
37 lines
930 B
C
37 lines
930 B
C
/*
|
|
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
|
*
|
|
* See the COPYRIGHT file distributed with this work for additional
|
|
* information regarding copyright ownership.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
/*! \file isc/lib.h */
|
|
|
|
#include <isc/lang.h>
|
|
#include <isc/types.h>
|
|
|
|
ISC_LANG_BEGINDECLS
|
|
|
|
void
|
|
isc_lib_register(void);
|
|
/*!<
|
|
* \brief Register the ISC library implementations for some base services
|
|
* such as memory or event management and handling socket or timer events.
|
|
* An external application that wants to use the ISC library must call this
|
|
* function very early in main().
|
|
*/
|
|
|
|
extern void
|
|
isc_enable_constructors(void);
|
|
/*!<
|
|
* \bried Enable constructor linkage in non-libtool static builds
|
|
*/
|
|
|
|
ISC_LANG_ENDDECLS
|