public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
* Symbols _fe_dfl_env and _fe_nomask_env not exported on x86_64
@ 2018-07-20  3:03 Houder
  2018-07-20 12:03 ` Houder
  2018-07-20 12:44 ` Corinna Vinschen
  0 siblings, 2 replies; 4+ messages in thread
From: Houder @ 2018-07-20  3:03 UTC (permalink / raw)
  To: cygwin

L.S.,

This STC fails to compile on Cygwin for x86_64:

// gcc -Wall -o stc-fenv stc-fenv.c
// Linux: gcc -Wall -o stc-fenv stc-fenv.c -lm
#define _GNU_SOURCE
#include <fenv.h>

int main()
{
     fesetenv(FE_DFL_ENV);
     fesetenv(FE_NOMASK_ENV);
}

64-@@ gcc -Wall -o stc-fenv stc-fenv.c
/tmp/cchxZMgV.o:stc-fenv.c:(.rdata$.refptr._fe_nomask_env[.refptr._fe_nomask_env]+0x0): 
undefined reference to `_fe_nomask_env'
/tmp/cchxZMgV.o:stc-fenv.c:(.rdata$.refptr._fe_dfl_env[.refptr._fe_dfl_env]+0x0): 
undefined reference to `_fe_dfl_env'
collect2: error: ld returned 1 exit status

However the STC does compile on x86.

Where has the machinery gone wrong?

Regards,

Henri

-----
File /usr/include/fenv.h contains: (line 124 ff)

extern const fenv_t *_fe_dfl_env;
#define FE_DFL_ENV (_fe_dfl_env)
[snip]
...
#if __GNU_VISIBLE
[snip]
...
extern const fenv_t *_fe_nomask_env;
#define FE_NOMASK_ENV (_fe_nomask_env)
#endif /* __GNU_VISIBLE */

File winsup/cygwin/fenv.cc contains: (line 35 ff)

/* These are writable so we can initialise them at startup.  */
static fenv_t fe_dfl_env;
static fenv_t fe_nomask_env;

/* These pointers provide the outside world with read-only access to 
them.  */
const fenv_t *_fe_dfl_env = &fe_dfl_env;
const fenv_t *_fe_nomask_env = &fe_nomask_env

=====

--
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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Symbols _fe_dfl_env and _fe_nomask_env not exported on x86_64
  2018-07-20  3:03 Symbols _fe_dfl_env and _fe_nomask_env not exported on x86_64 Houder
@ 2018-07-20 12:03 ` Houder
  2018-07-20 12:44 ` Corinna Vinschen
  1 sibling, 0 replies; 4+ messages in thread
From: Houder @ 2018-07-20 12:03 UTC (permalink / raw)
  To: cygwin

On 2018-07-20 01:00, Houder wrote:
> L.S.,
> 
> This STC fails to compile on Cygwin for x86_64:
> 
> // gcc -Wall -o stc-fenv stc-fenv.c
> // Linux: gcc -Wall -o stc-fenv stc-fenv.c -lm
> #define _GNU_SOURCE
> #include <fenv.h>
> 
> int main()
> {
>     fesetenv(FE_DFL_ENV);
>     fesetenv(FE_NOMASK_ENV);
> }
> 
> 64-@@ gcc -Wall -o stc-fenv stc-fenv.c
> /tmp/cchxZMgV.o:stc-fenv.c:(.rdata$.refptr._fe_nomask_env[.refptr._fe_nomask_env]+0x0):
> undefined reference to `_fe_nomask_env'
> /tmp/cchxZMgV.o:stc-fenv.c:(.rdata$.refptr._fe_dfl_env[.refptr._fe_dfl_env]+0x0):
> undefined reference to `_fe_dfl_env'
> collect2: error: ld returned 1 exit status
> 
> However the STC does compile on x86.
> 
> Where has the machinery gone wrong?

File winsup/CVSChangeLogs.old/cygwin/ChangeLog.64 bit contains: (line 
761 ff)

2013-02-08  Corinna Vinschen  <corinna@vinschen.de>

         * cygwin64.din (BASE): Set to 0x180040000.
         (_fe_dfl_env): Remove useless symbol.
         (_fe_nomask_env): Remove useless symbol.

File cygwin64.din does not exist anymore (as far as I can tell).

Has it been renamed x68_64.din?

Regards,

Henri

--
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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Symbols _fe_dfl_env and _fe_nomask_env not exported on x86_64
  2018-07-20  3:03 Symbols _fe_dfl_env and _fe_nomask_env not exported on x86_64 Houder
  2018-07-20 12:03 ` Houder
@ 2018-07-20 12:44 ` Corinna Vinschen
  2018-07-20 13:36   ` Houder
  1 sibling, 1 reply; 4+ messages in thread
From: Corinna Vinschen @ 2018-07-20 12:44 UTC (permalink / raw)
  To: cygwin

[-- Attachment #1: Type: text/plain, Size: 1092 bytes --]

On Jul 20 01:00, Houder wrote:
> L.S.,
> 
> This STC fails to compile on Cygwin for x86_64:
> 
> // gcc -Wall -o stc-fenv stc-fenv.c
> // Linux: gcc -Wall -o stc-fenv stc-fenv.c -lm
> #define _GNU_SOURCE
> #include <fenv.h>
> 
> int main()
> {
>     fesetenv(FE_DFL_ENV);
>     fesetenv(FE_NOMASK_ENV);
> }
> 
> 64-@@ gcc -Wall -o stc-fenv stc-fenv.c
> /tmp/cchxZMgV.o:stc-fenv.c:(.rdata$.refptr._fe_nomask_env[.refptr._fe_nomask_env]+0x0):
> undefined reference to `_fe_nomask_env'
> /tmp/cchxZMgV.o:stc-fenv.c:(.rdata$.refptr._fe_dfl_env[.refptr._fe_dfl_env]+0x0):
> undefined reference to `_fe_dfl_env'
> collect2: error: ld returned 1 exit status
> 
> However the STC does compile on x86.
> 
> Where has the machinery gone wrong?

The symbol export files were not correctly set up back then.  I pushed a
patch.  New snapshots should be uploaded shortly to
https://cygwin.com/snapshots/


Thanks,
Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Symbols _fe_dfl_env and _fe_nomask_env not exported on x86_64
  2018-07-20 12:44 ` Corinna Vinschen
@ 2018-07-20 13:36   ` Houder
  0 siblings, 0 replies; 4+ messages in thread
From: Houder @ 2018-07-20 13:36 UTC (permalink / raw)
  To: cygwin

On 2018-07-20 14:01, Corinna Vinschen wrote:
> On Jul 20 01:00, Houder wrote:
>> L.S.,
>> 
>> This STC fails to compile on Cygwin for x86_64:
>> 
>> // gcc -Wall -o stc-fenv stc-fenv.c
>> // Linux: gcc -Wall -o stc-fenv stc-fenv.c -lm
>> #define _GNU_SOURCE
>> #include <fenv.h>
>> 
>> int main()
>> {
>>     fesetenv(FE_DFL_ENV);
>>     fesetenv(FE_NOMASK_ENV);
>> }
>> 
>> 64-@@ gcc -Wall -o stc-fenv stc-fenv.c
>> /tmp/cchxZMgV.o:stc-fenv.c:(.rdata$.refptr._fe_nomask_env[.refptr._fe_nomask_env]+0x0):
>> undefined reference to `_fe_nomask_env'
>> /tmp/cchxZMgV.o:stc-fenv.c:(.rdata$.refptr._fe_dfl_env[.refptr._fe_dfl_env]+0x0):
>> undefined reference to `_fe_dfl_env'
>> collect2: error: ld returned 1 exit status
>> 
>> However the STC does compile on x86.
>> 
>> Where has the machinery gone wrong?
> 
> The symbol export files were not correctly set up back then.  I pushed 
> a
> patch.  New snapshots should be uploaded shortly to
> https://cygwin.com/snapshots/

Thank you, Corinna!

     
https://cygwin.com/git/gitweb.cgi?p=newlib-cygwin.git;a=commit;h=e9f223877f42c31353bd8b522596cb5fe1b87388
     (Cygwin: move FP environment exports to common.din)

Agreed!

(have not tested any snapshot yet; will do.)

Henri

--
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

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-07-20 12:37 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-20  3:03 Symbols _fe_dfl_env and _fe_nomask_env not exported on x86_64 Houder
2018-07-20 12:03 ` Houder
2018-07-20 12:44 ` Corinna Vinschen
2018-07-20 13:36   ` Houder

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).