This makes it far more useful, as before it insisted on scanning from
the root directory and putting the generated db files in /.rockbox
Change-Id: I0d0e3c6c6c7ee1fc5473185482fbfb9a2a2be29f
eg, our current toolchian generates this:
GNU ld (GNU Binutils) 2.26.1
But the system toolchain on the buildserver generates this:
GNU ld version 2.37-37.fc36
Change-Id: I0166f12d660654c1456289954fb256db98213618
NO_CROSSREFS_TO() was first introduced in binutils 2.27.
It is used to have the linker report errors when symbols
from a list of sections refer to a specified section,
which is useful for verifying that normal code does not
refer to INIT_ATTR code.
Note this doesn't actually start using NO_CROSSREFS_TO()
for builds -- that will have to wait until the toolchain
upgrade when we'll have a new enough binutils -- it just
detects support for the feature so it can be conditionally
enabled in linker scripts.
Change-Id: If1553eaa671fcbbdfe6af357a6331931e7c4f997
This turns on -fwrapv and -fwrapv-pointers.
As per GCC docs:
"This option instructs the compiler to assume that signed arithmetic
overflow of addition, subtraction and multiplication wraps around
using twos-complement representation. This flag enables some
optimizations and disables others."
All of our targets fall under this category.
For some time now we've been using -Wall which implies
-Wstrict-overflow=2, which only warns when the compiler actually
implements a possibly questionable optimization, so I'd expect this to
not affect our code size at all.
Change-Id: I8e1c10183e390c6d0897e81f84a5df4590b02d84
By passing --with-ubsan to tools/configure, you can now build the
simulator with UBSan to catch undefined behavior at runtime.
Change-Id: I054cd46ca59587dd544efbd7bdf6d27a040a4891
All three X1000 native targets turned out to have a very
similar boot configuration and used a nearly identical
makefile. Eliminate this duplication by moving the logic
into the main makefile.
Change-Id: I13044b9675c0abd605b8accdb2fee4f54549b020
Compiling the plugins takes quite a long time and is unnecessary
if you're only working on the core code. Having an option is nicer
than having to edit the configure script by hand.
Change-Id: I401867355d897ce3fd899d9daf25ea9afcc380f0
It has only a couple GB of onboard flash storage with no storage
driver in Rockbox. It hasn't seen any meaningful development since
its initial commit, it's not on the build farm, and the bootloader
build is broken by other refactoring.
Change-Id: Idd9e3c46fac9b96f416ce444182f97a50770e747
What works:
- LCD: 16-bit RGB565
- all buttons, including scrollwheel
- SD Card
- Battery level and charging/not charging status
- USB
- audio
- sample rate switching
- HP / LO detect, with "safe" fixed LO volume -
LO volume will only be put to user-defined max volume
if headphones are not present.
- rtc
- Plugins build, tried a couple and they seem OK
- Bootloader, installable to nand via usbboot
What doesn't work:
- Dual Boot
- power on/off has intermittent, low volume audio click
(sometimes it's completely silent, sometimes there's
a click)
- Audio uses 16-bit volume scaling, so clicking/popping
is pretty bad at lower volumes - need 32 bit volume
scaling, 24 bit I2S data
- USB HID keys not yet defined
- no jztool support
Unknowns:
- Stereo Switch pins: Direction select, AC_DC
(probably not even hooked up)
- What is the actual purpose of the Stereo Swtich?
- How does the bluetooth module connect?
"Someday" stuff:
- get LCD working at higher bit depth
- Bluetooth
Change-Id: I70dda8fc092c6e3f4352f2245e4164193f803c33
- Audio playback works
- Touchscreen and buttons work
- Bootloader works and is capable of dual boot
- Plugins are working
- Cabbiev2 theme has been ported
- Stable for general usage
Thanks to Marc Aarts for porting Cabbiev2 and plugin bitmaps.
There's a few minor known issues:
- Bootloader must be installed manually using 'usbboot' as there is
no support in jztool yet.
- Keymaps may be lacking, need further testing and feedback.
- Some plugins may not be fully adapted to the screen size and could
benefit from further tweaking.
- LCD shows abnormal effects under some circumstances: for example,
after viewing a mostly black screen an afterimage appears briefly
when going back to a brightly-lit screen. Sudden power-off without
proper shutdown of the backlight causes a "dissolving" effect.
- CW2015 battery reporting driver is buggy, and disabled for now.
Battery reporting is currently voltage-based using the AXP192.
Change-Id: I635e83f02a880192c5a82cb0861ad3a61c137c3a
SPL and UCL-compressed bootloader are now packed into one output,
bootloader.m3k, eliminating the separate SPL build phase.
The Rockbox bootloader now has a recovery menu, accessible by
holding VOL+ when booting, that lets you back up, restore, and
update the bootloader from the device.
Change-Id: I642c6e5fb83587a013ab2fbfd1adab439561ced2
It never worked, and hasn't compiled in something like a decade, Given
the HW capabilities (limited onboard flash, no expandability) there's
really no point in trying to fix/complete it.
Change-Id: I7d175089840396f8891645bd10010d730dd5bfdc
They were never finished, never saw any release ever, and haven't
compiled for the better part of a decade. Given their HW capabilities [1],
they are not worth trying to fix.
[1] 1-2MB RAM, ~256MB onboard flash, no expandability
Change-Id: I7b2a5806d687114c22156bb0458d4a10a9734190
It seems that 'toolset=' in tools/configure was set but not used, with
the build system only generating a hardcoded set of tools. This change
fixes the issue by exporting the required tools in the TOOLSET variable,
and having root.make append those to the TOOLS list.
Change-Id: I07024bdf1dd2260c32cfeecaba0d3bb5bf00346d
* arm failures in lua, wolf3d, quake, flac
* m68k failures in lua, wmapro
* mips ???
I still think that most of these are actually due to latent bugs or
ambiguous code.
Change-Id: I4c9751d2b5c7a66253b313bfbc75fcd721b118d6
And size elements horizaontally based on SYSFONT_WIDTH
Unfortunately we need 16px icons to make 16px statusbar look right
but at least it _works_ properly now.
Also: all targets currently use 8-px SYSFONT, except some hosted bootloaders
Change-Id: I0cdf97e6ef47ec49693ef79667b200595b4fe075
GCC 4.9.4 was already used for MIPS and all hosted targets; this enables
it across the board for everything (ie m68k and arm native)
Other changes:
* Use '-Os' as the default optiomization for all targets
(was only disabled for arm native)
* Enable -funit-at-a-time and -Wextra
* Drop all obsolete toolchain patches
* Update ARM multilib/exception patch
* Bump toolchain libs (gmp, mpfr, mpc) to recommended versions, and
add 'isl' to enable better optimization & vectorization opportunities.
(Will revisit optimization for the codecs and plugins at a later date)
Confirmed working:
* armv4t (ipodmini2g and many other PP502x targets)
* arm >= v5 (sansaclipplus, ipod6g, ipodnano2g, sansafuzeplus)
* m68k (ihp100)
Change-Id: If9ed405ae0f289d9adea46d4cf46bfefc2f4250d
The Q and K have a slightly different case, but the hardware under the
shell is completely identical.
These models are rebadged versions:
* Hifiwalker H2 (== Q)
* AGPTek H3 (== K)
* Surfans F20 (== K)
Other notes:
* Significant improvements in the shared Hiby-platform launcher/loader
* SD card can theoretically be hot-swapped now
* Support external USB mass storage!
* Some consolidation of Hiby-platform targets
* Some consolidation of plugin keymaps
Todo/known issues:
* Keymaps need to be gone over properly
* Convert to HAVE_SCROLLWHEEL?
Change-Id: I5a8a4f22c38a5b69392ca7c0a8ad8c4e07d9523c
Most credit goes to: Roman Skylarov
Additional integration and refactoring by myself.
*** COMPLETELY UNTESTED ***
Change-Id: Ia64c36d92e0214c6b15f7a868df286f8113ea27b
This codec requires floating point.
Original author: Peter Sovietov
Ported to Rockbox: Roman Skylarov
Further integration and bugfixes: Solomon Peachy
Change-Id: I781ecd3592dfcdbbc694063334350342534f1d6c
'swcodec' is now always set (and recording_swcodec for recording-capable
units) in feature.txt so the manual and language strings don't need to
all be fixed up.
Change-Id: Ib2c9d5d157af8d33653e2d4b4a12881b9aa6ddb0
* get rid of $(LANGUAGE) in top-level makefile (and configure script)
* un-hardcode English-as-primary-language in a couple more places
* allow DEFAULT_VOICE_LANG to be overriden
To actually change the primary from English, one must change:
* $english in voice.pl
* hardcoded 'english' in rbutil
* $ENGLISH in apps/lang/lang.make
* DEFAULT_VOICE_LANG in apps/talk.c
* configure script (default prompt)
Of course, if one wants to change the default UI language, it's simpler
to change the default language setting variable at compile time, or
perhaps by adding a configuration file with the desired value into the
.rockbox directory when the .zip is assembled.
Change-Id: If5cf76019d416e838628a2eccd4ec7d6cbaeeb74
* configure: allow use of full tts engine names when making selection
* voice.pl: fixes for espeak-ng
* build.pm: Add a list of "standard" voices for tooling use
The latter will be used by the nightly builder infrastructure to
determine what voices to generate.
Change-Id: Iff55288f94a30fbe08d8345b730969b7264b5e0f
festival: english and spanish only
gtts: all but nederlands
espeak: all (need espeak-ng for czech, greek, and japanese)
Change-Id: I7df1b3235b48f352b0af3c13e3742e85432bc692
Uses the 'gtts-cli' command line client. Supports a wide variety of
languages, including all "Complete" and "Good" Rockbox translations.
Additional changes:
* voice synth script can accept pre-encoded mp3 files
* Move language->synth options mapping into the voice script
* Additional cleanups
Change-Id: I9523e2bca87cbcee2d8c4111f9892e8e458c7419
DX50/DX90 has a Cortex-A9 with NEON, use those specific flags
for speed.
Generic Android targets is for v4.4 (API 19) which doesn't support
pre-v7 ARM CPUs, so target generic armv7-a with hardfp support.
(This patch includes a rearrangement of the android toolchain helpers to
allow target-specific GCCOPTS. Huzzah)
Change-Id: I696051ef3fae25e1569c7b904decb7a3a0c6b674