Opened 7 weeks ago

Closed 5 weeks ago

#27389 closed defect (fixed)

Appveyor Windows 64-bit builds fail because the compiler is broken

Reported by: teor Owned by: teor
Priority: Medium Milestone: Tor: 0.3.5.x-final
Component: Core Tor/Tor Version: Tor: 0.3.4.1-alpha
Severity: Major Keywords: 035-must, 034-backport
Cc: mikeperry Actual Points:
Parent ID: Points:
Reviewer: nickm Sponsor:

Description

Since about 6 hours ago, all Appveyor 64-bit Windows builds fail the first C file they build with:

bash.exe : In file included from ../src/core/or/or.h:16,
At line:2 char:5
+     & $commandPath $args 2>&1
+     ~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (In file include...ore/or/or.h:16,:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError
 
                 from ../src/app/main/ntmain.c:22:
../src/lib/cc/torint.h:52:2: error: #error "Seems that your platform doesn't use 2's complement arithmetic. Argh."
 #error "Seems that your platform doesn't use 2's complement arithmetic. Argh."
  ^~~~~
In file included from ../src/core/or/or.h:26,
                 from ../src/app/main/ntmain.c:22:
../src/lib/cc/compat_compiler.h:28:2: error: #error "It seems your platform does not represent NULL as zero. We can't cope."
 #error "It seems your platform does not represent NULL as zero. We can't cope."
  ^~~~~
../src/lib/cc/compat_compiler.h:32:2: error: #error "It seems your platform does not represent 0.0 as zeros. We can't cope."
 #error "It seems your platform does not represent 0.0 as zeros. We can't cope."
  ^~~~~
In file included from ../src/core/or/or.h:16,
                 from ../src/feature/dirauth/dircollate.h:16,
                 from ../src/feature/dirauth/dircollate.c:25:
../src/lib/cc/torint.h:52:2: error: #error "Seems that your platform doesn't use 2's complement arithmetic. Argh."
 #error "Seems that your platform doesn't use 2's complement arithmetic. Argh."
  ^~~~~
In file included from ../src/core/or/or.h:26,
                 from ../src/feature/dirauth/dircollate.h:16,
                 from ../src/feature/dirauth/dircollate.c:25:
../src/lib/cc/compat_compiler.h:28:2: error: #error "It seems your platform does not represent NULL as zero. We can't cope."
 #error "It seems your platform does not represent NULL as zero. We can't cope."
  ^~~~~
../src/lib/cc/compat_compiler.h:32:2: error: #error "It seems your platform does not represent 0.0 as zeros. We can't cope."
 #error "It seems your platform does not represent 0.0 as zeros. We can't cope."
  ^~~~~

https://ci.appveyor.com/project/teor2345/tor/build/1.0.113/job/ujbvwntcu1pdk2m6#L762

CC'ing mikeperry, because he's on CI rotation this week.
Which is weird, because configure seems to succeed.

Child Tickets

TicketStatusOwnerSummaryComponent
#27449closedteorAppveyor: always log the compiler versionCore Tor/Tor
#27460closedteorAppveyor: --disable-gcc-hardeningCore Tor/Tor
#27461closedteorWindows: cast between incompatible function types in mainCore Tor/Tor
#27463closedteorhs: rend_client_send_introduction v0 string truncation warningCore Tor/Tor
#27465closedteorWindows: cast between incompatible function types in address.cCore Tor/Tor

Change History (10)

comment:1 Changed 7 weeks ago by teor

Keywords: 034-must 034-backport added
Milestone: Tor: 0.3.5.x-finalTor: 0.3.4.x-final
Status: newneeds_review
Version: Tor: 0.3.4.1-alpha

We introduced appveyor in 0.3.4, so this patch needs to be backported to 0.3.4.

See my branch bug27389-034, on https://github.com/teor2345/tor.git
It allows failures for the 64-bit build.

When the compiler is fixed, we should revert this patch.

comment:3 Changed 7 weeks ago by nickm

This has come up before, but as an issue caused by failures during configure. If this is failing, it probably means one of two things:

  1. that the compiler itself is unreliable.
  2. That we have something happening during configure that is making all the subsequent compiler calls fail.

In this case, it would be extremely handy for us to look at config.log, so that we can make sure this isn't our bug, before we go ahead and allow failures with this build.

comment:4 in reply to:  3 Changed 6 weeks ago by teor

Owner: set to teor
Status: needs_reviewassigned

Replying to nickm:

This has come up before, but as an issue caused by failures during configure. If this is failing, it probably means one of two things:

  1. that the compiler itself is unreliable.
  2. That we have something happening during configure that is making all the subsequent compiler calls fail.

In this case, it would be extremely handy for us to look at config.log, so that we can make sure this isn't our bug, before we go ahead and allow failures with this build.

This is my task now, because I'm on CI this week.

comment:5 in reply to:  3 Changed 6 weeks ago by teor

Status: assignedneeds_review

Replying to nickm:

This has come up before, but as an issue caused by failures during configure. If this is failing, it probably means one of two things:

  1. that the compiler itself is unreliable.
  2. That we have something happening during configure that is making all the subsequent compiler calls fail.

In this case, it would be extremely handy for us to look at config.log, so that we can make sure this isn't our bug, before we go ahead and allow failures with this build.

All builds are failing, even on code that passed before Friday. So it can't be caused by new code that we merged. I checked before I logged this ticket. (I'm sorry I didn't mention that in the ticket.)

I opened #27432 to deal with the underlying issue that all our compiled executables crash on x86_64 Appveyor.

comment:6 Changed 6 weeks ago by asn

Reviewer: nickm

comment:7 Changed 6 weeks ago by teor

See my branch bug27389-034-fixes on https://github.com/teor2345/tor.git

It merges the fixes for #27460, #27461, #27463, and #27465 into maint-0.3.4.

It should pass CI:

Let's deal with the child tickets individually, because they're spread across 0.2.9 and 0.3.4.

comment:8 Changed 5 weeks ago by teor

Keywords: 034-must removed
Milestone: Tor: 0.3.4.x-finalTor: 0.3.5.x-final

034 is stable, so it's too late for 034-must

comment:9 Changed 5 weeks ago by nickm

I have merged all the needs_review child tickets -- should this still be needs_review?

comment:10 Changed 5 weeks ago by nickm

Resolution: fixed
Status: needs_reviewclosed

Unparented remaining children; closing

Note: See TracTickets for help on using tickets.