Note that if you are using a linker which supports the --eh-frame-hdr
option, and if your libc provides the dl_iterate_phdr function, and if
the gcc configure script figures those things out, then exceptions will
correctly propagate across shared libraries even if you don't use
libgcc_s.so. That approach is also more efficient and should be used if
possible, so libgcc_s.so may not be an issue for you.
This could indeed be the problem. Did you use --disable-bootstrap when
you ran configure? When bootstrapping, this is supposed work due to the
setting of LD_LIBRARY_PATH in the top level Makefile before building
adalib. Specifically, these lines:
$(RPATH_ENVVAR)=`echo "$(TARGET_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); \
TARGET_LIB_PATH = $(TARGET_LIB_PATH_libstdc++-v3)$(TARGET_LIB_PATH_libmudflap)$(TARGET_LIB_PATH_libssp)$(TARGET_LIB_PATH_libgomp)$(HOST_LIB_PATH_gcc)
Ideally libgcc_s.so.1 should be found via HOST_LIB_PATH_gcc.
(If you used --disable-bootstrap, then you are more or less responsible
for dealing with this yourself.)