1
0
Fork 0
forked from len0rd/rockbox
Commit graph

851 commits

Author SHA1 Message Date
Solomon Peachy
334def8431 configure: Fix android x86 build
Change-Id: Iea1d92bcf83f016e724496ebf037c8402ede170c
2024-07-24 09:01:04 -04:00
Solomon Peachy
3e9ca6ec8e configure: Stray unquoted space in a sed expression
Should fix SDL builds where --static-libs are not present

Change-Id: I96056f3e4d9a4ae971ad2d9e792ba542478f331b
2024-07-04 10:38:49 -04:00
Solomon Peachy
30ef953393 configure: Fix 'make reconf' when win64 sim builds are enabled
Change-Id: I9d3c23dee58cb3b4edce7bfcc0429500ffe23e58
2024-07-04 09:48:02 -04:00
Solomon Peachy
961f8a0f56 configure: if we can't link SDL statically, drop -static from the cmdline
Fixes building windows simulator builds on Fedora systems

Change-Id: I1e17e8f2f395a0298fc9d3d7e03c621d23208221
2024-07-04 09:48:02 -04:00
Solomon Peachy
1c3f77eccd Revert "Toolchains: Update to GCC 8.5.0"
Accidental push instead of going to gerrit.   #!$!#!

This reverts commit 67dc833e46.

Change-Id: I42a7c9dfd0f1a3dd676b1a5d3eee0a900f2561f7
2024-06-30 15:06:44 -04:00
Solomon Peachy
67dc833e46 Toolchains: Update to GCC 8.5.0
All toolchain dependencies are circa the GCC 8.5.0 release:

  GCC 8.5.0, binutils 2.37, gmp 6.2.1, mpfr 4.1.0, mpc 1.2.1, isl 0.18

Native:

 * arm  (smoke tested on ipodvideo+mini2g)
 * mips (seems to be stable on xDuoo X3)
 * m68k (binaries untested)

Hosted:

 * arm (binaries untested)
 * mips (smoke tested on xDuoo X3ii)

Unchanged:

 * Android NDK (unchanged at GCC 4.9.4)

Change-Id: I1c2fca5d87d4a11e50aa495fad75f4f9c938c766
2024-06-30 15:05:08 -04:00
Solomon Peachy
8e280bdda8 configure: Hopefully resolve windows simulator builds issues for hosted targets
Change-Id: If4ded4cb3a19603ea0e5e0b7d3f4c281492dbc8b
2024-06-26 09:43:42 -04:00
Solomon Peachy
80cd799925 voice: If $POOL is not set, use <build-dir>/voice-pool by default
It will _vastly_ speed up repeated voice builds.

The voice pool directory will not be erased by a 'make clean'

Change-Id: Ice58d5c5355abfa5a385dfca749f8063e2ee8622
2024-06-20 21:00:48 -04:00
Solomon Peachy
2ef10ec734 Fix typo in the previous commit
Change-Id: I9e8de11ba86e147abc9bb5b3dfcc550655fe360d
2024-06-19 09:22:44 -04:00
Solomon Peachy
9beca004b9 simulator: Hopefully fix red introduced in 5b61c79cf
This problem only happened with GCC7 (and older?) simulator builds, and
was introduced by an incorrect test that always stripped our default
optimization (-Os) in simulator builds.

The fix is to correct the test to only strip -Os if the user explicitly
enables a debug build.

Also, use -Og instead of (implicit) -O0, as per GCC recommendations.

Change-Id: I61091b3cdf5323504961c0bb2d80aa65049eb8fb
2024-06-19 08:49:02 -04:00
Roman Artiukhin
5b61c79cf8 simulator: debugging: Disable -Os compiler optimizations when DEBUG is defined
Otherwise, breakpoints may not correspond with the source code

Change-Id: I0f8d4f578bde52c0219923d8be28e01c66c8dfbc
2024-06-18 20:42:59 -04:00
Solomon Peachy
73f40d8a23 build: Experimental LTO support, phase one
* Only codecs and plugins are enabled
 * Only native builds (so far)
 * Only tested on xDuoo X3 (MIPS, monochrome)
 * opus & speex generate some warnings
 * Significant compile time impact

Change-Id: I519b0d179631a54b2103cd67225bd5ec6ad3bd2f
2024-06-18 08:15:47 -04:00
Solomon Peachy
810e337a87 xduoox3: It doesn't have a radio, so don't put that in APPEXTRA
Change-Id: I4521598af49f91ab89d19bb6c2bf8bebf60bad51
2024-06-08 19:03:35 -04:00
Solomon Peachy
8b8c0c7c2a checkwps: Validate translated strings (%Sx)
In verbose mode it will log valid the strings found, otherwise it will
only complain when we encounter a missing string.

Unfortunately a missing string is not inherently a problem, due to
conditional expressions.  So all we can do is complain in checkwps
or if wps debugging is turned on.

Meanwhile, this is the first step in actually enumerating the translated
strings used by themes.

Change-Id: Ia93b333085e825d5b085c4d372ad8e13aa3e3ba1
2024-05-24 21:37:54 -04:00
Solomon Peachy
54389dcf2f configure: fix test for LD version on non-macos systems
Change-Id: I6296a013def3e55b44cbba781f3a397a94d2c561
2024-05-08 22:40:18 -04:00
Solomon Peachy
8c86fb6da0 arm: Use -masm-syntax-unified when compiling with gcc8 or newer
Annoyingly, this makes all of the '.S' files we compile get treated as
divided syntax, so we need to make the syntax in them explicit.

Change-Id: I56a3916b7b24c84a1214a5d6bc4ed4d651f002cf
2024-05-08 21:45:42 -04:00
Solomon Peachy
4a52147122 configure: strip '--voice' from the 'make reconf' option list to avoid dupes
Change-Id: I09ade245023d51a7553ca6149c9c3effd2b6b9d2
2024-04-23 22:12:25 -04:00
Solomon Peachy
e8a51569ad voice: Add support for the Piper TTS engine
https://github.com/rhasspy/piper

High quality, offline, neural-network-based, with good language coverage

Note that you have to manually download the piper voice models, and set
PIPER_MODEL_DIR appropriately.  The configure script will let you choose
from the available models and remember your choices.

Change-Id: I8eba9fcf78b51b01b89491539aac3e423cc42f16
2024-04-21 18:08:47 -04:00
Aidan MacDonald
8bdf08cd2d Sansa e200v2: Enable thumb for bootloader by default
Thumb bootloaders were confirmed to work in this post:

https://forums.rockbox.org/index.php/topic,54768.msg253473.html#msg253473

Change-Id: Id52769b9b6a2acc167503fa61aec665f4090fdc1
2024-03-30 11:58:40 -04:00
Solomon Peachy
8bc7ba5d22 dbtool: More fixes to dbtool operation
Now properly treats current directory as "/"

Change-Id: I54357a65f2fda7d2cfb56ff18a044ae10b87bbce
2023-05-25 16:05:59 -04:00
Solomon Peachy
e803daae0a dbtool: Fix it up so that it runs from the CURRENT working directory
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
2023-05-25 15:43:15 -04:00
Solomon Peachy
56fe1129da configure: Deal with more variations of the 'ld' version output
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
2023-05-22 15:58:29 -04:00
Aidan MacDonald
e7cc77e5b8 configure: Detect linker's NO_CROSSREFS_TO() support
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
2023-05-22 14:48:07 -04:00
Solomon Peachy
8ff0fb6075 toolchain: Globally use '-fno-strict-overflow'
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
2023-04-18 10:51:24 -04:00
Aidan MacDonald
c6df8cc4f7 configure: Add support for compiling the simulator with UBSan
By passing --with-ubsan to tools/configure, you can now build the
simulator with UBSan to catch undefined behavior at runtime.

Change-Id: I054cd46ca59587dd544efbd7bdf6d27a040a4891
2022-04-17 11:37:34 -04:00
William Wilgus
a62d36d9e7 Warble builds define WARBLE fix metadata_common in warble builds
Change-Id: Ie5115162da5a06d917de09f75b90254bb30b7513
2022-03-13 11:41:30 -04:00
Aidan MacDonald
701d4ba77e x1000: Merge makefiles used for the bootloader
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
2021-11-18 14:14:54 -05:00
Solomon Peachy
412e76b487 configure: --no-ccache must disable CCACHE for $HOSTCC too!
Accomplish this by setting CCACHE_DISABLE=true

Change-Id: Ie930fc4e828ebb7a29234c1a8f371980489d5668
2021-09-20 20:14:37 -04:00
Aidan MacDonald
de578bde1f Add advanced build option to omit building plugins
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
2021-08-15 19:36:14 +00:00
Solomon Peachy
04fe77a465 Remove the (very) incomplete port for the Tatung TPJ-1102
It was barely even a stub, and hasn't seen any development since 2009

Change-Id: I0aa15d9a7b90ae8c771924d9f401380d4cc0fab9
2021-08-14 16:29:39 -04:00
Aidan MacDonald
786d06742a Remove Samsung YP-Z5 port
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
2021-08-14 14:13:54 +01:00
Dana Conrad
3e7a09cb0d New Port: Eros Q Native
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
2021-07-18 12:14:35 +00:00
Aidan MacDonald
4c60bc9e68 New port: Shanling Q1 native
- 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
2021-07-13 22:01:33 +01:00
Solomon Peachy
663539619c configure: fix a typo that could break voice builds
(If you don't have espeak, festival, or flite installed)

Change-Id: I5820535c55cc02e32bf31f3e30070b2c1e68ff87
2021-07-09 15:10:50 +00:00
Solomon Peachy
2c984f3714 build: use gcc-ar / gcc-ranlib in preparation for link-time-optimization
Change-Id: If5fd9a8f15200fca9a89999605394f7527387a2b
2021-07-08 19:53:05 -04:00
Solomon Peachy
2ff3425ab1 build: Rename SHARED_LDFLAG to SHARED_LDFLAGS
Change-Id: Icb81c72fbcfcdad624112a386ba38a40a830d18f
2021-07-08 19:53:05 -04:00
Aidan MacDonald
3f26fcf340 FiiO M3K: New bootloader
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
2021-05-12 10:35:20 +00:00
Solomon Peachy
7d0d32dbc6 Nuke the never-functional iriver ifp-7xx port
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
2021-04-26 07:42:58 -04:00
Solomon Peachy
3ba2f6e5c7 Nuke all TCC77x targets: iAudio 7, Sansa C100, M200(v1-3), Logik DAX
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
2021-04-26 07:41:51 -04:00
Aidan MacDonald
a544c8467d FiiO M3K: increase bootloader font size
The default font was very small and hard to read.

Change-Id: Id6d8ec49a700dcad65903b92c09ec42840c1f6e5
2021-04-21 18:32:10 +00:00
Solomon Peachy
27b44bca73 configure: Get rid of the unused NOISEFLOOR option in voicefile generation
Change-Id: Id3b281e62487858120aae97cd5ee0ef888cf89a0
2021-04-20 08:50:06 -04:00
Solomon Peachy
d2f694696f configure: Enable easy use of AddressSanitizer with sim builds
Change-Id: I6df7e63b1820296a280faa0925ad4781637b879b
2021-04-07 21:48:58 -04:00
Aidan MacDonald
3ec66893e3 New port: FiiO M3K on bare metal
Change-Id: I7517e7d5459e129dcfc9465c6fbd708619888fbe
2021-03-28 00:01:37 +00:00
Solomon Peachy
a53864ed4a build: Don't overwrite autoconf.h unless it has actually changed
This way we only rebuild the world if something relevant changed.

Change-Id: Ia7d104cadec185a3227acbf330bb3b359296f0fb
2021-03-24 18:50:58 +00:00
Aidan MacDonald
aacb0811d9 Rename symbols of FiiO M3K Linux-based port
Mainly a straight replacement of FIIO_M3K -> FIIO_M3K_LINUX.

Change-Id: Id07c84f8150991d1b6851540c2c3f8f67e3f12c2
2021-02-27 23:53:28 +00:00
Aidan MacDonald
6224efb238 Fix build system not respecting TOOLSET
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
2021-02-27 22:51:52 +00:00
Solomon Peachy
7c87467ba4 configure: Add prompt for USB Serial into the advanced mode
And explicitly disable USB_ENABLE_SERIAL when HAVE_USBSTACK is not define

Change-Id: Ieb4176b02a60eb1b9db81f0b8c69403898a76ca1
2020-11-18 08:50:05 -05:00
Solomon Peachy
090bd9592d Remove the firmware decompressor and a few more other SH-stragglers.
Change-Id: Ic568755afcccc6db1b6e791b1ed0d2588b90356f
2020-11-03 23:43:32 +00:00
Solomon Peachy
41a6da6043 builds: Enable -fno-delete-null-pointer-checks globally
* 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
2020-10-28 04:10:29 +00:00
Solomon Peachy
804a49886a statusbar: Make statusbar height equal SYSFONT_HEIGHT
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
2020-10-26 19:52:40 +00:00