aboutsummaryrefslogtreecommitdiff
path: root/libgfortran/runtime/main.c
diff options
context:
space:
mode:
authorFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>2005-11-04 08:44:29 +0000
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>2005-11-04 08:44:29 +0000
commitf2ae4b2bd03c98446d25729a4483b35e515a08d4 (patch)
tree2baeb30ac5f592018a46140e8a34f178598a67b6 /libgfortran/runtime/main.c
parenta67ec6ab99c91c593138358b56dcc160aa09a015 (diff)
downloadgcc-f2ae4b2bd03c98446d25729a4483b35e515a08d4.zip
gcc-f2ae4b2bd03c98446d25729a4483b35e515a08d4.tar.gz
gcc-f2ae4b2bd03c98446d25729a4483b35e515a08d4.tar.bz2
re PR libfortran/22298 (libgfortran init() constructor isn't called if executable is statically linked)
PR libfortran/22298 * runtime/main.c (stupid_function_name_for_static_linking): New function. * runtime/error.c (internal_error): Call stupid_function_name_for_static_linking. * libgfortran.h: Add prototype for stupid_function_name_for_static_linking. * gcc/testsuite/lib/target-supports.exp (check_effective_target_static_libgfortran): New static_libgfortran effective target. * gcc/testsuite/gfortran.dg/static_linking_1.f: New test. * gcc/testsuite/gfortran.dg/static_linking_1.c: New file. From-SVN: r106484
Diffstat (limited to 'libgfortran/runtime/main.c')
-rw-r--r--libgfortran/runtime/main.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libgfortran/runtime/main.c b/libgfortran/runtime/main.c
index 1186a30..cfd77f2 100644
--- a/libgfortran/runtime/main.c
+++ b/libgfortran/runtime/main.c
@@ -35,6 +35,14 @@ Boston, MA 02110-1301, USA. */
#include "libgfortran.h"
+/* Stupid function to be sure the constructor is always linked in, even
+ in the case of static linking. See PR libfortran/22298 for details. */
+void
+stupid_function_name_for_static_linking (void)
+{
+ return;
+}
+
/* This is the offset (in bytes) required to cast from logical(8)* to
logical(4)*. and still get the same result. Will be 0 for little-endian
machines and 4 for big-endian machines. */