[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [nmh-workers] Problems compiling on SPARC Sun Solaris 10 compile wit
From: |
Ken Hornstein |
Subject: |
Re: [nmh-workers] Problems compiling on SPARC Sun Solaris 10 compile with ANSI C SUN compiler. |
Date: |
Thu, 13 Jun 2019 12:08:07 -0400 |
So, first off ... if HAVE_STDBOOL_H is being defined and we are including
stdbool.h, then I guess I am wondering what the contents of stdbool.h are.
Also, I don't know who is supposed to be adding the preprocessor symbol
_BOOL. I think some time spent with the -E option (or whatever does the
similar thing on Solaris) and looking at stdbool.h could puzzle this out.
>> Undefined first referenced
>> symbol in file
>> memmem sbr/libmh.a(sbr_libmh_a-m_getfld.o)
>> stpcpy sbr/libmh.a(sbr_libmh_a-concat.o)
>> strnlen sbr/libmh.a(sbr_libmh_a-utils.o)
>
>Solaris 10 doesn't have those three functions, says Gnulib.
>
> https://www.gnu.org/software/gnulib/manual/html_node/memmem.html
> https://www.gnu.org/software/gnulib/manual/html_node/stpcpy.html
> https://www.gnu.org/software/gnulib/manual/html_node/strnlen.html
>
>http://austingroupbugs.net/view.php?id=1061 suggests POSIX are adding
>memmem(). stpcpy() and strnlen() are in POSIX.1-2008.
We try to conform to POSIX; I did not realize memmem() was NOT POSIX,
but to be fair this is the first I've heard of it and I didn't realize
we used it. Looking where it is used, I understand why we use it.
>I forget what we do in this situation?
I guess our official answer is: ¯\_(ツ)_/¯
In a perfect world, we'd offer function replacements for at least the
non-POSIX functions we use via autoconf, and possibly for other functions.
And I don't want to actively make Solaris not work ... but I'm PERSONALLY
not interested in spending the time to make that work, especially since
I haven't had access to any Solaris systems in a long time and Solaris
has become a "challenging" system to develop for in recent years.
I guess the answers are: change the code to use other functions or install
Gnulib and use that (note: that might be a bit of a challenge since gnulib
is really designed to be used as source, not a library you link against),
or find some other library that has these functions and link against it.
Or, really, write some trivial replacements for those functions because
I think you could do them all as one-liners. Maybe not memmem(), but that
one would only be a few lines.
--Ken