> I get what I think is a linking error when linking miniruby.
> Below is a (shortened) copy of the output I get. This is on
> a clean checkout of trunk (using Ruby 1.8.7 as baseruby).
>
> duerst@jougashima /cygdrive/c/Data/ruby-public
> $ make
> =A0 =A0 =A0 =A0CC =3D gcc
> =A0 =A0 =A0 =A0LD =3D ld
> =A0 =A0 =A0 =A0LDSHARED =3D gcc -shared -s
> =A0 =A0 =A0 =A0CFLAGS =3D -O3 -g -Wall -Wextra -Wno-unused-parameter -Wno=
-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variab=
le -Werror=3Dpointer-arith -Werror=3Dwrite-strings -Werror=3Ddeclaration-af=
ter-statement -Werror=3Dimplicit-function-declaration
> =A0 =A0 =A0 =A0XCFLAGS =3D -include ruby/config.h -include ruby/missing.h=
 -D_FORTIFY_SOURCE=3D2 -fstack-protector -DRUBY_EXPORT
> =A0 =A0 =A0 =A0CPPFLAGS =3D =A0 -I. -I.ext/include/i386-cygwin -I./includ=
e -I.
> =A0 =A0 =A0 =A0DLDFLAGS =3D -Wl,--enable-auto-image-base,--enable-auto-im=
port -Wl,--out-implib=3Dlibruby191.dll.a cygruby191.def -Xlinker --no-undef=
ined
> =A0 =A0 =A0 =A0SOLIBS =3D cygruby191.res.o -lpthread -lrt -ldl -lcrypt
> linking miniruby.exe
> dmyencoding.o: In function `set_encoding_const':
> /cygdrive/c/Data/ruby-public/encoding.c:1473: undefined reference to `___=
stack_chk_guard'
> /cygdrive/c/Data/ruby-public/encoding.c:1520: undefined reference to `___=
stack_chk_guard'
> /cygdrive/c/Data/ruby-public/encoding.c:1520: undefined reference to `___=
stack_chk_fail'
> bignum.o: In function `rb_str_to_inum':
> /cygdrive/c/Data/ruby-public/bignum.c:763: undefined reference to `___sta=
ck_chk_guard'
> /cygdrive/c/Data/ruby-public/bignum.c:790: undefined reference to `___sta=
ck_chk_guard'
> /cygdrive/c/Data/ruby-public/bignum.c:790: undefined reference to `___sta=
ck_chk_fail'
> dir.o: In function `dir_read':
> /cygdrive/c/Data/ruby-public/dir.c:569: undefined reference to `___stack_=
chk_guard'
> /cygdrive/c/Data/ruby-public/dir.c:586: undefined reference to `___stack_=
chk_guard'
> /cygdrive/c/Data/ruby-public/dir.c:586: undefined reference to `___stack_=
chk_fail'

Could you please try following patch?

Thanks.



From aedc302aede815ee90fef99e756877cbdbd21b14 Mon Sep 17 00:00:00 2001
From: KOSAKI Motohiro <kosaki.motohiro / gmail.com>
Date: Sun, 27 Nov 2011 00:14:44 -0500
Subject: [PATCH] * configure.in: add -fstack-protector into XLDFLAGS as wel=
l as
   XCFLAGS if stack-protector is used.

---
 ChangeLog    |    5 +++++
 configure.in |    3 ++-
 2 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 5f32df8..cf9068e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sun Nov 27 14:13:33 2011  KOSAKI Motohiro  <kosaki.motohiro / gmail.com>
+
+       * configure.in: add -fstack-protector into XLDFLAGS as well as
+         XCFLAGS if stack-protector is used.
+
 Sun Nov 27 04:57:11 2011  NARUSE, Yui  <naruse / ruby-lang.org>

        * configure.in (--no-undefined): r33840 breaks FreeBSD and DragonFl=
y
diff --git a/configure.in b/configure.in
index ce4ea18..b12399a 100644
--- a/configure.in
+++ b/configure.in
@@ -497,7 +497,8 @@ if test "$GCC:${warnflags+set}:no" =3D yes::no; then
 fi
 if test "$GCC" =3D yes; then
     RUBY_TRY_CFLAGS(-D_FORTIFY_SOURCE=3D2, [RUBY_APPEND_OPTION(XCFLAGS,
-D_FORTIFY_SOURCE=3D2)])
-    RUBY_TRY_CFLAGS(-fstack-protector, [RUBY_APPEND_OPTION(XCFLAGS,
-fstack-protector)])
+    RUBY_TRY_CFLAGS(-fstack-protector, [RUBY_APPEND_OPTION(XCFLAGS,
-fstack-protector)
+                                       RUBY_APPEND_OPTION(XLDFLAGS,
-fstack-protector)])
 fi

 if test "$GCC" =3D ""; then
--=20
1.7.1