Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upc_char has changed on ARM in 1.6 #29867
Comments
alexcrichton
added
I-nominated
T-libs
labels
Nov 16, 2015
alexcrichton
referenced this issue
Nov 16, 2015
Merged
Prefer raw::c_char or libc::c_char and fix arm #29775
This comment has been minimized.
This comment has been minimized.
|
Some other points:
|
This comment has been minimized.
This comment has been minimized.
|
Note that #29775 only changed It sucks. My solution has been to pin specific versions via hacking on Cargo.lock. I'm not sure that reverting back to the wrong type is the right course of action to take, though. |
This comment has been minimized.
This comment has been minimized.
|
Should library use types from |
This comment has been minimized.
This comment has been minimized.
|
That's a good question! I don't think it should matter as the types should in theory always be the same. |
This comment has been minimized.
This comment has been minimized.
|
I think they should, tbh. In theory they should be the same, but if you plan on using std methods, you should be using the types it exports, and not assuming some external crates.io crate matches up. For bonus points: make them quasi-newtypes so a cast between the two is required :P Also: All Android platforms (including x86) seem to be affected. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Can we reorganize this somehow so that we use a single source of truth? Defining |
This comment has been minimized.
This comment has been minimized.
|
The libs team discussed this during triage yesterday and the conclusion was that we're unlikely to go back to the old incorrect definitions and otherwise we'll basically just do what we can to help mitigate this breakage. @bluss that's possible, yeah, although it wouldn't have fixed this problem because the "single source of truth" from before was wrong (both libstd and libc disagreed). |
alexcrichton
closed this
Nov 19, 2015
This comment has been minimized.
This comment has been minimized.
|
I hope that updating all the things (servo/servo#8608) to libc 0.2 will fix the build errors related to this for Servo. |
This comment has been minimized.
This comment has been minimized.
|
@alexcrichton But the major fallout comes from incompatible types, not from the change per se? If all the crate including libc used |
This comment has been minimized.
This comment has been minimized.
|
Yeah that's true and it would help mitigate problems like this. There's a number of interesting issues around libc reexporting types from the standard library, however, so it's currently not done. |
This comment has been minimized.
This comment has been minimized.
|
@bluss but libc is the source of Maybe the libc crate should use a cfg feature for this? Set that feature to provide its own good |
This was referenced Nov 19, 2015
This was referenced Nov 25, 2015
This was referenced Dec 3, 2015
MagaTailor
referenced this issue
Dec 21, 2015
Closed
'mismatched types' errors when building 'arm-linux-androideabi' target #1374
MagaTailor
referenced
this issue
in ogham/exa
Dec 21, 2015
This was referenced Dec 21, 2015
This was referenced Dec 30, 2015
This was referenced Jan 3, 2016
This was referenced Jan 14, 2016
This comment has been minimized.
This comment has been minimized.
MagaTailor
commented
Feb 4, 2016
lrbalt
added a commit
to lrbalt/pcap
that referenced
this issue
Feb 21, 2016
This was referenced Jun 6, 2016
This comment has been minimized.
This comment has been minimized.
MagaTailor
commented
Jun 26, 2016
|
Even |
alexcrichton commentedNov 16, 2015
Android was changed in #29546 and Linux ARM was changed in #29775. Both are bug fixes as the definitions have been corrected, but this is causing breakage:
Can we help mitigate this breakage? Should we revert "the fix" for now?
Opening a tracking issue (and nominating it) to discuss this.