ruby-changes:54653
From: k0kubun <ko1@a...>
Date: Sat, 19 Jan 2019 16:27:05 +0900 (JST)
Subject: [ruby-changes:54653] k0kubun:r66869 (trunk): mjit_worker.c: do not use GCC_NOSTDLIB_FLAGS for OpenBSD
k0kubun 2019-01-19 16:26:59 +0900 (Sat, 19 Jan 2019) New Revision: 66869 https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=66869 Log: mjit_worker.c: do not use GCC_NOSTDLIB_FLAGS for OpenBSD OpenBSD's GCC compiler has local extensions that break when `-nostartfiles -nodefaultlibs -nostdlib` is used. From: Jeremy Evans <merch-redmine@j...> [Bug #15548] Modified files: trunk/mjit_worker.c Index: mjit_worker.c =================================================================== --- mjit_worker.c (revision 66868) +++ mjit_worker.c (revision 66869) @@ -247,9 +247,9 @@ static char *libruby_pathflag; https://github.com/ruby/ruby/blob/trunk/mjit_worker.c#L247 # define MJIT_CFLAGS_PIPE 0 #endif -// Use `-nodefaultlibs -nostdlib` for GCC where possible, which does not work on mingw, cygwin and AIX. +// Use `-nodefaultlibs -nostdlib` for GCC where possible, which does not work on mingw, cygwin, AIX, and OpenBSD. // This seems to improve MJIT performance on GCC. -#if defined __GNUC__ && !defined __clang__ && !defined(_WIN32) && !defined(__CYGWIN__) && !defined(_AIX) +#if defined __GNUC__ && !defined __clang__ && !defined(_WIN32) && !defined(__CYGWIN__) && !defined(_AIX) && !defined(__OpenBSD__) # define GCC_NOSTDLIB_FLAGS "-nodefaultlibs", "-nostdlib", #else # define GCC_NOSTDLIB_FLAGS /* empty */ @@ -266,7 +266,7 @@ static const char *const CC_OPTIMIZE_ARG https://github.com/ruby/ruby/blob/trunk/mjit_worker.c#L266 static const char *const CC_LDSHARED_ARGS[] = {MJIT_LDSHARED GCC_PIC_FLAGS NULL}; static const char *const CC_DLDFLAGS_ARGS[] = { MJIT_DLDFLAGS -#if defined __GNUC__ && !defined __clang__ +#if defined __GNUC__ && !defined __clang__ && !defined(__OpenBSD__) "-nostartfiles", #endif GCC_NOSTDLIB_FLAGS NULL -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/