Simulators (and some hosted targets) no longer get a free pass!
This commit includes general fixes for simulator builds, but it
will undoubtedly result in many more warnings that need to be properly
fixed.
Change-Id: I6bb9d3fc4a29ccfe40366c438e058b5dfff0ddc3
'arm946cc' was only used by the never-finished 'tcc77x' targets that
were removed from the tree in 3ba2f6e5c7 (April 2021)
Change-Id: I935847ec9d339b8e90c6d2362113c2ff94b8b20f
When matching the target id in a phrase, if there is more than one match
we always use the final one. This allows us to easily specify a
default/wildcard entry that gets overridden by a target-specific one.
The list of targets was sorted alphabetically to ensure consistent ordering
from one run of the tooling to the next.
However, if a phrase contained both device-specific phrases as well as a
generic "feature" fallback, alphabetical sorting may screw things up, as
the "feature default" was no longer at the top of the list. This is
known to be an issue for LANG_TIME_SET_BUTTON and LANG_TIME_REVERT, but
may affect other phrases as well.
(To be blunt, we shouldn't be mixing feature and device-specific targets
in this context. The "feature default" should be removed in favor of
target-specific entries, but in this specific case it looks to be a
real PITA due to incomplete keymaps)
Consequently, work around this by sorting the target list within each phrase
based on the ordering in the master (ie English) language file.
Change-Id: Id32439c179a98663f414530fb36012f9b217c1b6
This reverts commit 5323c49fe6.
This caused build failures on two of the three affected targets. The intent
of the delted code was to force thumb on unless it had been explicitly
disabled. Due to extreme space constraints those targets _need_ to
be built in thumb mode.
Shrink audio buffer from ~256MB to ~192MB. Increase plugin buffer size
to 2MB, not that it should matter given how much extra RAM this platform has.
This leaves plenty of room for the base OS to do what it needs to do.
Change-Id: I59ca235b9cf80cf86d406e4a144fee7d7784ed5d
This represents a 256K increase from the former (MEMORYSIZE-0.75), and
is necessary due to the growth in our binary sizes over the past decade
or so.
It is debatable if this is enough given that our actual memory
usage is approximately (MEMORYSIZE+3) megabytes (plus runtime OS
overhead) for the typical hosted build, but giving the host OS a bit
more breathing room is warranted.
Change-Id: I53e044585a32efd50a85e68d64fd21921eda01a3
We used 16-bit variables to store the 'character code' everywhere but
this won't let us represent anything beyond U+FFFF.
This patch changes those variables to a custom type that can be 32 or 16
bits depending on the build, and adjusts numerous internal APIs and
datastructures to match. This includes:
* utf8decode() and friends
* font manipulation, caching, rendering, and generation
* on-screen keyboard
* FAT filesystem (parsing and generating utf16 LFNs)
* WIN32 simulator platform code
Note that this patch doesn't _enable_ >16bit unicode support; a followup
patch will turn that on for appropriate targets.
Appears to work on:
* hosted linux, native, linux simulator in both 16/32-bit modes.
Needs testing on:
* windows and macos simulator (16bit+32bit)
Change-Id: Iba111b27d2433019b6bff937cf1ebd2c4353a0e8
All toolchain dependencies are circa the GCC 10.5.0 release:
GCC 10.5.0, binutils 2.40, gmp 6.2.1, mpfr 4.1.1, mpc 1.3.1, isl 0.24
Native:
* arm - mini2g, nano2g works
- ipod6g hangs at logo display
* mips - xduoox3 works
* m68k - binaries untested
Hosted:
* arm - samsungypr0 works
* mips - xduoox3ii works
* Android NDK - unchanged at GCC 4.9.4
Change-Id: Ic157255d76030e66325719e64331f553cb7c4363
We used 16-bit variables to store the 'character code' everywhere but
this won't let us represent anything beyond U+FFFF.
This patch changes those variables to a custom type that can be 32 or 16
bits depending on the build, and adjusts numerous internal APIs and
datastructures to match. This includes:
* utf8decode() and friends
* on-screen keyboard
* font manipulation, caching, rendering, and generation
* VFAT code parses and generates utf16 dirents
* WIN32 simulator reads and writes utf16 filenames
Note that this patch doesn't _enable_ >16bit unicode support; a followup
patch will turn that on for appropriate targets.
Known bugs:
* Native players in 32-bit unicode mode generate mangled filename
entries if they include UTF16 surrogate codepoints. Root cause
is unclear, and may reside in core dircache code.
Needs testing on:
* windows simulator (16bit+32bit)
Change-Id: I193a00fe2a11a4181ddc82df2d71be52bf00b6e6
All toolchain dependencies are circa the GCC 10.5.0 release:
GCC 10.5.0, binutils 2.40, gmp 6.2.1, mpfr 4.1.1, mpc 1.3.1, isl 0.24
Native:
* arm - mini2g, nano2g works
- ipod6g hangs at logo display
* mips - xduoox3 works
* m68k - binaries untested
Hosted:
* arm - samsungypr0 works
* mips - xduoox3ii works
* Android NDK - unchanged at GCC 4.9.4
Change-Id: Ic9c4ad487927d2ad4247c140f1a7db2740e5f316
It was forked off of wpsbuild.pl but never utilized, and wpsbuild
continued to receive improvements
Change-Id: I38de687e45560398f438830ba920bacceff5cc24
According to screen driver this device screen is actually 16 bit RGB565 (https://github.com/DrUm78/linux/blob/FunKey_S/drivers/staging/fbtft/fb_st7789v.c#L137).
This also fixes the color banding issues we had before and boomshine doesn't segfault anymore. Also building rockpaint now that's possible.
Change-Id: Icee49c347fbfabc79e0040314ec148cb77ca6325
mips gcc will fail to build using the system's
BSD sed. Make sure the Homebrew-installed GNU sed
'sed' simlink is in the PATH. Otherwise, only 'gsed'
can be used to run GNU sed by default.
Change-Id: I0a793c692d9a6de4f326e447281892eb08e4f4cb
The zlib version used by GCC 4.9.4 and binutils 2.26.1
is incompatible with clang 17 from the latest Xcode
command line tools, resulting in fdopen being defined
as NULL.
Remove the define for MacOS, as in zlib 1.31:
4bd9a71f35
Change-Id: Ic7f3108dc4fcaca4ae9a571f2bdb9039be095f36
Can make global variable access more efficient at the price of erroring
out if a variable is declared in more than one place.
Change-Id: I918eacf4a4c8c7827be64f7f2ee04cc6cc2009e0
A bit of context, this device is a clone of the FunKey-S with a different form factor, hardware is mostly identical, the relevant difference is it has audio out (via usb-c, adapter to 3.5mm is included), this is the reason why the FunKey-SDK is needed for bulding.
This port is based on the old SDL 1.2 code because the device doesn't have SDL2 support. Alongside what was supported in the SDL 1.2 builds this port supports battery level, charging status and backlight control.
Change-Id: I7fcb85be62748644b667c0efebabf59d6e9c5ade
* sort contents of generated apps/lang/english.list
* Ignore all entries with a source of 'none'
* Filter out all destination strings not present in master english list
* Always require '-e' argument
Change-Id: Ic86c0cb6c44139465cba6b6ce840131efe217c4d
* Only bootloader builds
* Plugins disabled
* No keymaps to anything else
* No simulator
* Touchscreen not wired up yet
* Audio still untested
Bugs:
* rotary encoder does nothing in bootloader
(might be bootloader bug, might be something else)
Other stuff pulled in:
* Unify all of the (identical!) hibyos makefiles
* Rename the "bootloader" to more generic name
Change-Id: I6d8a3b58de726db8e89cf193c90960a070a575c2
For example, LANG_TIME_SET_BUTTON has these:
*: none
aigoerosq,erosqnative,gogearsa9200,samsungyh*: "PLAY = Set"
gigabeat*,iaudiom5,iaudiox5,ipod*,iriverh10,iriverh10_5gb,mrobe100,sansac200*,sansaclip*,sansaconnect,sansae200*,sansafuze*: "SELECT = Set"
iriverh100,iriverh120,iriverh300: "NAVI = Set"
mpiohd300: "ENTER = Set"
mrobe500: "HEART = Set"
rtc: "ON = Set"
vibe500: "OK = Set"
But all of these players will match their name _and_ the generic 'rtc'
feature that enables use of this phrase. The language tooling
always used the final match in the list, so this resulted in
most devices showing the generic (and incorrect) 'ON = Set" instead
of the device-specific strings.
This patch changes the behavior so that only a match with the device
model itself can override the previously used string.
Change-Id: I93ee11b1e4925c39edaecdcbc13ccc51ed176a45
The tooling will always use the *final* match, which may or may not be
what is desired. Treat this as a bug, and complain appropriately.
However, there is a special case. The RTC set screen uses strings that
include the device button names. There should be an entry for the
specific device, but if not, we wanted to fall back to the string
specified by the 'rtc' feature flag as opposed to falling back to the
default, empty string.
To still support this, add a special "FALLBACK" value; If we end up
using this for a device, the tooling will treat this as a bug, and
complain accordingly.
This should fix FS#13615 and FS13616, and may introduce build failures
on targets that are missing appropriate entries. We'll see.
Change-Id: Ie78bb247f968e19d450a0fbf6e1177b6d01126a1