Skip to content
This repository was archived by the owner on Oct 12, 2022. It is now read-only.

Commit dee73ba

Browse files
authored
Merge pull request #2078 from rracariu/master
Add uClibc definitions to core.stdc.* merged-on-behalf-of: Sebastian Wilzbach <sebi.wilzbach@gmail.com>
2 parents cb32bd4 + f5297bb commit dee73ba

File tree

10 files changed

+508
-0
lines changed

10 files changed

+508
-0
lines changed

src/core/stdc/assert_.d

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,10 @@ else version (CRuntime_Musl)
7575
*/
7676
void __assert_fail(const(char)* exp, const(char)* file, uint line, const(char)* func);
7777
}
78+
else version (CRuntime_UClibc)
79+
{
80+
void __assert(const(char)* exp, const(char)* file, uint line, const(char)* func);
81+
}
7882
else version (Solaris)
7983
{
8084
void __assert_c99(const(char)* exp, const(char)* file, uint line, const(char)* func);

src/core/stdc/errno.d

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,14 @@ else version (CRuntime_Bionic)
7575
alias errno = __errno;
7676
}
7777
}
78+
else version (CRuntime_UClibc)
79+
{
80+
extern (C)
81+
{
82+
ref int __errno_location();
83+
alias errno = __errno_location;
84+
}
85+
}
7886
else version (Darwin)
7987
{
8088
extern (C)

src/core/stdc/fenv.d

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,63 @@ else version( CRuntime_Musl )
336336
static assert(false, "Architecture not supported.");
337337
}
338338
}
339+
else version( CRuntime_UClibc )
340+
{
341+
version (X86)
342+
{
343+
struct fenv_t
344+
{
345+
ushort __control_word;
346+
ushort __unused1;
347+
ushort __status_word;
348+
ushort __unused2;
349+
ushort __tags;
350+
ushort __unused3;
351+
uint __eip;
352+
ushort __cs_selector;
353+
ushort __opcode;
354+
uint __data_offset;
355+
ushort __data_selector;
356+
ushort __unused5;
357+
}
358+
359+
alias fexcept_t = ushort;
360+
}
361+
else version (X86_64)
362+
{
363+
struct fenv_t
364+
{
365+
ushort __control_word;
366+
ushort __unused1;
367+
ushort __status_word;
368+
ushort __unused2;
369+
ushort __tags;
370+
ushort __unused3;
371+
uint __eip;
372+
ushort __cs_selector;
373+
ushort __opcode;
374+
uint __data_offset;
375+
ushort __data_selector;
376+
ushort __unused5;
377+
uint __mxcsr;
378+
}
379+
380+
alias fexcept_t = ushort;
381+
}
382+
else version(ARM)
383+
{
384+
struct fenv_t
385+
{
386+
uint __cw;
387+
}
388+
389+
alias fexcept_t = uint;
390+
}
391+
else
392+
{
393+
static assert(false, "Architecture not supported.");
394+
}
395+
}
339396
else
340397
{
341398
static assert( false, "Unsupported platform" );
@@ -666,6 +723,11 @@ else version( CRuntime_Musl )
666723
///
667724
enum FE_DFL_ENV = cast(fenv_t*)(-1);
668725
}
726+
else version( CRuntime_UClibc )
727+
{
728+
///
729+
enum FE_DFL_ENV = cast(fenv_t*)(-1);
730+
}
669731
else
670732
{
671733
static assert( false, "Unsupported platform" );

src/core/stdc/locale.d

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,35 @@ else version(CRuntime_Musl)
235235
///
236236
enum LC_ALL = 6;
237237
}
238+
else version(CRuntime_UClibc)
239+
{
240+
///
241+
enum LC_CTYPE = 0;
242+
///
243+
enum LC_NUMERIC = 1;
244+
///
245+
enum LC_TIME = 2;
246+
///
247+
enum LC_COLLATE = 3;
248+
///
249+
enum LC_MONETARY = 4;
250+
///
251+
enum LC_MESSAGES = 5;
252+
///
253+
enum LC_ALL = 6;
254+
///
255+
enum LC_PAPER = 7;
256+
///
257+
enum LC_NAME = 8;
258+
///
259+
enum LC_ADDRESS = 9;
260+
///
261+
enum LC_TELEPHONE = 10;
262+
///
263+
enum LC_MEASUREMENT = 11;
264+
///
265+
enum LC_IDENTIFICATION = 12;
266+
}
238267
else
239268
{
240269
static assert(false, "Unsupported platform");

0 commit comments

Comments
 (0)