Commit Graph

55 Commits

Author SHA1 Message Date
Ash Logan
28ffb89c02 Merge 'build-refactor' attempt #1; get upstream changes 2019-04-23 18:37:05 +10:00
Ash Logan
f92657e8b5 coreinit: Use rplwrap for exit (__rplwrap_exit) 2019-04-22 12:43:37 +10:00
Ash Logan
fb9b7ab3fb wutstdc++: remove volatile keyword
Who knows? not me. Seems to work okay without it
wut_stdcpp.cpp
/home/ash/src/wut/libraries/wutstdc++/wut_stdcpp.cpp:3:9: error: 
expected '(' before '__volatile__'
 __asm__ __volatile__(
         ^~~~~~~~~~~~
         (
/home/ash/src/wut/libraries/wutstdc++/wut_stdcpp.cpp:4:4: error: 
expected unqualified-id before string constant
    "\t.section\t.text.__wrap___gxx_personality_v0,\"ax\",@progbits\n"
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/ash/src/wut/libraries/wutstdc++/wut_stdcpp.cpp:3:22: error: 
expected ')' before string constant
 __asm__ __volatile__(
                     ~^
                      )
    "\t.section\t.text.__wrap___gxx_personality_v0,\"ax\",@progbits\n"
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[1]: *** [/opt/devkitpro/devkitPPC/base_rules:13: wut_stdcpp.o] 
Error 1
2019-04-09 20:41:45 +10:00
Ash Logan
869fe709ea Revert "wutstdc++: Move __gxx_personality to dedicated Assembly file"
This reverts commit 370eeb28e9.
I didn't know what this did, sorry.
2019-04-09 20:26:35 +10:00
Ash Logan
370eeb28e9 wutstdc++: Move __gxx_personality to dedicated Assembly file
I was getting issues with __volatile__ for unknown reason, so moving 
this to a dedicated file sidesteps the issue entirely and passes this 
straight to GAS.
2019-04-09 16:44:42 +10:00
rw-r-r-0644
6ea6625b78 devoptab: Fix double free in __wut_fs_stat
The double free caused apps to crash when attempting to run stat on a directory
2019-02-24 15:48:46 +00:00
fincs
0b920cf9b9 Automatically link wutstdc++ when C++ is used 2019-02-12 12:46:34 +01:00
fincs
26ac7b3ff2 wutmalloc: Bugfixes, see details:
- Added (dummy) __init/fini_wut_malloc stubs called by wutcrt
  in order to ensure that wutmalloc gets linked in
- malloc/realloc/calloc now properly set errno to ENOMEM during failure
- realloc no longer fails if ptr==NULL (in this case it works
  like a regular malloc)
- realloc no longer does an out of bounds copy if the new size
  is smaller than the old size
- free(NULL) is now supported as per the C standard
- Disabled sbrk/malloc-lock support code in wutnewlib because
  newlib's malloc is replaced with wutmalloc
2019-02-12 12:46:34 +01:00
fincs
ee3bb10df4 First pass at adopting a devkitPro-style build system, see details:
- Added wut_rules and wut/rpx/rpl.specs to share/
- Replaced wut's CMake-based buildsystem with a standard Makefile
- Conflated all wut libraries into a single libwut.a library
- wut's old buildsystems (CMake & plain make) are broken as a result,
  this will be fixed in the future
- Docs, tests and samples are not buildable either at the moment
- wutcrt/wutnewlib:
  - RPX start function is __rpx_start, while RPL is __rpl_start
  - __init/fini_wut_* functions are no longer weak
  - __init_wut/__fini_wut are instead weak
  - Removed _exit implementation
  - exit syscall now points to _Exit instead of pointing to itself
- wutstdc++:
  - Renamed .cc files to .cpp
  - Temporarily disabled, due to an issue that will be addressed shortly
- wutdevoptab:
  - Fixed uninitialized variable warnings in __wut_fs_read/write
2019-02-12 12:46:28 +01:00
James Benton
fb4a54fc4c Rename GX2_SQ_SELMASK macro to GX2_SEL_MASK. 2018-10-21 15:24:25 +01:00
James Benton
857fcd8eea Build libraries with -Wall and -Werror. 2018-10-06 10:50:32 +01:00
James Benton
069e28acec Make the devoptab code more consistent. 2018-10-06 10:41:24 +01:00
James Benton
ea009ce10b wutcrt: Forward newlib _exit to the coreinit.rpl _Exit 2018-09-30 08:40:38 +01:00
James Benton
400318c3d1 Rename rpl_main to rpl_entry. 2018-09-30 08:40:38 +01:00
James Benton
690bd6ccbd Revert "Rename wutdevoptab to wutdevoptab_sd"
This reverts commit 865af4609c.
Turns out it is for whole filesystem. oops.
2018-07-19 08:51:40 +01:00
James Benton
6f014e48d2 Remove last usages of GLOB_RECURSE. 2018-06-28 16:01:16 +01:00
James Benton
5f1b1902f6 Prefix structsize macros with WUT_ 2018-06-20 11:05:16 +01:00
James Benton
b4619783ca Remove sized types from wut_types.h
stdint.h exists for a reason.
2018-06-20 11:05:16 +01:00
James Benton
39429c0cbc cmake: Cleanup some CMake stuff. 2018-06-15 13:59:55 +01:00
James Benton
f9799cf3dd Fix __init_wut_sbrk_heap. 2018-06-15 13:59:30 +01:00
James Benton
d315b4bb34 Add new wutmalloc library.
This overwrites malloc and redirects it to alloc from default heap.
Also sets __wut_heap_max_size to limit sbrk heap now that malloc no longer
uses it.
2018-06-14 09:33:16 +01:00
James Benton
98b6f6ec2f wutnewlib: Allow custom fixed sbrk heap size.
So now either uses 90% of the available base heap, or allocates a fixed
sized heap from the default heap.
2018-06-14 09:32:37 +01:00
James Benton
1471ea4338 Change wutnewlib to implement malloc family of functions.
This allows us to forward them straight to default heap functions, this
is better than having to allocate a fixed heap for sbrk as it allows
people to better mix usage malloc & default heap functions.
2018-06-13 18:38:53 +01:00
James Benton
c4214cef35 sysapp: Change unknown structure to a struct typedef. 2018-06-13 17:36:12 +01:00
James Benton
865af4609c Rename wutdevoptab to wutdevoptab_sd 2018-06-13 13:36:15 +01:00
James Benton
75784dbb52 Add nn::swkbd library. 2018-06-13 12:12:22 +01:00
James Benton
3c054375db wutstdc++: Fix __wut_key_t. 2018-06-02 10:36:28 +01:00
James Benton
f11112ca0f Change LATTE_SQ_SEL to GX2_SQ_SEL.
latte is private stuff yo.
2018-05-31 11:19:39 +01:00
James Benton
4e2099a2e4 whb: Add missing GX2Invalidate call.
GX2RUnlockBuffer is supposed to be calling invalidate for us.... but it
does not seem to work and we require an explicit invalidate instead?!?!
2018-05-31 10:10:10 +01:00
James Benton
1c3d26ab1b wutcrt: Setup a proper stack frame for _start. 2018-05-30 22:13:49 +01:00
James Benton
699aa5ca99 wutcrt: Fix call to __fini_wut instead of __init_wut for rpl on load entry. 2018-05-30 22:00:58 +01:00
James Benton
f281be50ab Add support for generating RPL files.
RPL files are shared libraries (like a .dll file), as opposed to the RPX
files which are executables (like a .exe file).

Use rpl_main as defined in dynload.h like one would DllMain on Windows.
2018-05-30 21:56:18 +01:00
James Benton
4220023511 wutstdc++: Use malloc / free instead of MEM functions. 2018-05-30 14:42:42 +01:00
James Benton
d5effaaf88 coreinit: Cleanup memory heap functions.
Move files to mem*heap.h.
Use MEMHeapHandle everywhere to reduce need for unecessary casts.
Rename types to match the function names better (e.g. Frame -> Frm).
2018-05-30 13:13:37 +01:00
James Benton
a5d15a7a3a Remove libdefaultheap.
Replaced by coreinit data exports.
2018-05-29 10:52:40 +01:00
dibas
45e0904a69 WHBGfx - Separate ClearColor() and allow custom colors. 2018-05-28 11:42:13 +01:00
James Benton
f7a698388c wutnewlib: Implement the new __syscalls from upcoming devkitPPC release. 2018-05-28 11:40:22 +01:00
James Benton
2b165bf887 Improve time conversion macros. 2018-05-28 11:39:36 +01:00
James Benton
b4a6eb2f78 Split out crt from wutnewlib to wutcrt.
Can now optionally link newlib, stdc++, devoptab.
2018-05-27 12:12:49 +01:00
James Benton
479e9ad677 Add devoptab support for sdcard. 2018-05-27 12:11:45 +01:00
James Benton
ac8a42fa7c Change to using new gthreads implementation.
Assuming that --enable-threads=dkp gets merged into devkitPPC r31... :)
2018-05-26 18:25:36 +01:00
James Benton
37228a095d Disable call to __fini as it breaks stuff. 2018-05-26 18:18:16 +01:00
James Benton
9a3cbcd2ef wutnewlib: Call __fini for global dtors.
main calls __eabi which calls __init, but main doesn't call __fini?
y u do this
2018-05-25 21:20:39 +01:00
James Benton
33bff6ccb9 whb: Fix exception handlers to be globally registered.
Was previously only registered for current thread.
2018-05-25 18:59:29 +01:00
James Benton
710ce964c8 wutstdc++: Add remaining gthreads reliant std code. 2018-05-25 18:47:11 +01:00
James Benton
ec59508010 wutstdc++: Implement __gthread_cond_timedwait. 2018-05-25 18:45:19 +01:00
James Benton
750a2370d8 wutstdc++: Move gthread code to source files. 2018-05-25 18:15:39 +01:00
James Benton
675549474a wutstdc++: Implement gthread keys. 2018-05-25 18:06:54 +01:00
James Benton
3336fbaf5d Implement __gthread_once. 2018-05-25 17:35:21 +01:00
James Benton
b00b5af1ec wutstdc++: Add gthr-default.h to CMakeLists.txt 2018-05-25 17:35:07 +01:00