D issues are now tracked on GitHub. This Bugzilla instance remains as a read-only archive.
Issue 12977 - lf64 definitions aren't correct on Solaris
Summary: lf64 definitions aren't correct on Solaris
Status: RESOLVED FIXED
Alias: None
Product: D
Classification: Unclassified
Component: druntime (show other issues)
Version: D2
Hardware: x86 Solaris
: P1 enhancement
Assignee: No Owner
URL:
Keywords: pull
Depends on:
Blocks: 8859
  Show dependency treegraph
 
Reported: 2014-06-24 04:26 UTC by Jason King
Modified: 2014-07-06 14:39 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description Jason King 2014-06-24 04:26:26 UTC
In general, the Solaris large file support is implemented as:

If 64 bit:
  define structs/functions without 64 alias (these are the actual names that are linked)
  alias *64 suffix to actual function names

else:
  if USING_LARGEFILES:
     define *64 function/structs
     alias regular functions to *64 variants
  else
     define non-64 suffixed functions/structs

The D definitions currently do the 32-bit large file behavior in 64-bit environments, causing it to attempt to link to the *64 suffixed function names, which fails (since they only exist in the 32-bit libc).  The definitions should match what the Solaris header files do.