From: akihiko.odaki.4i@... Date: 2018-01-22T10:24:35+00:00 Subject: [ruby-core:84964] [Ruby trunk Bug#13069] mkmf: ignore linker warnings on OpenBSD Issue #13069 has been updated by akihikodaki (Akihiko Odaki). File mkmf.patch added ruby -v set to ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux] The issue is affecting my gem, [cld3-ruby](https://github.com/akihikodaki/cld3-ruby). [Build failure on OpenBSD �� Issue #16 �� akihikodaki/cld3-ruby](https://github.com/akihikodaki/cld3-ruby/issues/16) > Those warnings are always emitted regardless use of the functions? I reviewed the source code of Binutils and GCC and found no means to suppress the warning. I understand many link warnings result in runtime failure, but it is just insane to make all warnings errors. Warnings are not errors because they may not result in actual failure. The impact of this issue is severe. It would disable many native extensions on OpenBSD. On the other hand, though those warnings sound ridiculous, OpenBSD should not be blamed because they are just adding warnings, not errors. mkmf should be fixed. I have two suggestions to address this kind of issue: 1. Redirect linker's stderr to mkmf's stderr, and optionally ask the user if he thinks it is fine to continue. 2. Execute the output instead of catching stderr to detect runtime failures if not cross compiling. I attached a patch to implement suggestion 2. ---------------------------------------- Bug #13069: mkmf: ignore linker warnings on OpenBSD https://bugs.ruby-lang.org/issues/13069#change-69674 * Author: anton (Anton Lindqvist) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux] * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- Installing gems with native extensions fails on my OpenBSD machine since the linker emits warnings causing stderr to not be empty as expected. The warnings are security recommendations that does not affect the linked binary. See examples below from my mkmf.log caused by libruby: ~~~ warning: warning: strcpy() is almost always misused, please use strlcpy() warning: warning: strcat() is almost always misused, please use strlcat() warning: warning: sprintf() is often misused, please use snprintf() warning: warning: vsprintf() is often misused, please use vsnprintf() ~~~ Attached is patch that checks the output for such harmless warnings. Not sure if this exception should be allowed on all platforms, but instead wrapped in a `RUBY_PLATFORM =~ /openbsd/` conditional or something similar. ---Files-------------------------------- ruby-mkmf_openbsd.diff (880 Bytes) mkmf.patch (4.19 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: