This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [ANNOUNCEMENT] TEST RELEASE: Cygwin 2.10.0-0.1


On 1/20/2018 7:23 AM, Ken Brown wrote:
On 1/19/2018 10:27 PM, Ken Brown wrote:
On 1/18/2018 6:28 PM, Ken Brown wrote:
On 1/18/2018 4:30 PM, Yaakov Selkowitz wrote:
On 2018-01-18 08:35, Ken Brown wrote:
On 1/17/2018 5:29 PM, Ken Brown wrote:
Do we need a new gcc release to go along with the recent ssp changes?

The following commit message seems to answer my question:

     Note that this does require building gcc with --disable-libssp and
     gcc_cv_libc_provides_ssp=yes.

Correct.

Are there plans to coordinate the release of Cygwin 2.10.0 with a new
gcc release?  In the meantime, I guess package maintainers have to build with -U_FORTIFY_SOURCE in order to test building with Cygwin 2.10.0.  Or
am I missing something?

-D_FORTIFY_SOURCE is not the default, so simply omitting it is
sufficient.

I was talking about building projects in which _FORTIFY_SOURCE is defined by default.  That happens, for instance, in the gnulib subdirectory of the emacs tree, so it may affect other projects that use gnulib also.

You could also just delete
/usr/lib/gcc/*-pc-cygwin/6.4.0/include/ssp, since we won't need it
anymore and it wasn't even being used properly in the first place.

That's a simpler workaround than what I was doing.  Thanks.

Here's another issue that's come up with _FORTIFY_SOURCE.  One of the emacs source files, fileio.c, makes use of a pointer to readlinkat. [More precisely, the file uses an external function foo() with a parameter 'bar' that's a pointer to a function; foo is called in fileio.c with bar = readlinkat.]

When _FORTIFY_SOURCE > 0, this leads to an "undefined reference to `__ssp_protected_readlinkat'" linking error.  Does this sound like something that will be fixed with the new gcc release?

I realize I haven't given you full details, but it might be a few days until I have a chance to extract an STC for this issue, so I thought I'd give it a shot.

If you can't answer the question based on the information above, I'll make an STC as soon as I can.

I got to this sooner than expected:

$ cat ssp_test.c
#define  _FORTIFY_SOURCE 1
#include <unistd.h>
void foo (ssize_t (*preadlinkat) (int, char const *, char *, size_t));

void baz ()
{
   foo (readlinkat);
}

$ gcc -c -O1 ssp_test.c

$ objdump -x ssp_test.o | grep readlinkat
  6 .rdata$.refptr.__ssp_protected_readlinkat 00000010 0000000000000000  0000000000000000  00000180  2**4
[...]

And the problem is still there with the new GCC that was just released.

Ken


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]