Previous day | Jump to hour: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | Next day

Seconds: Show Hide | Joins: Show Hide | View raw
Font: Serif Sans-Serif Monospace | Size: Small Medium Large

Click in the nick column to highlight everything a person has said.
The Logo icon identifies that the person is a core developer (has commit access).

#rockbox log for 2023-06-27

00:01:59 Quit MonTaGaTnoM (Read error: Connection reset by peer)
00:02:39 Join MonTaGaTnoM [0] (~shawn156@user/shawn/x-4432647)
00:23:06__builtinspeachy: re: memcpy/memset in plugins, I believe that those are available (and not in the rb-> API namespace)
00:24:22__builtinentirely from my stale working memory though, so might be mistaken
00:33:29_bilgus__memmove memcpy, and memset are all in the plugin rb->API
00:37:11 Quit m01 (Quit: Konversation terminated.)
00:39:52 Join m01 [0] (
01:18:45 Join PheralSparky [0] (~shawn156@user/shawn/x-4432647)
01:19:23 Quit MonTaGaTnoM (Ping timeout: 246 seconds)
01:28:41***Saving seen data "./dancer.seen"
03:28:43***No seen item changed, no save performed.
04:52:36 Quit PheralSparky (Read error: Connection reset by peer)
05:28:44***Saving seen data "./dancer.seen"
06:01:03 Join bluebrother [0] (~dom@user/bluebrother)
06:03:34 Quit rb-bluebot (Ping timeout: 258 seconds)
06:04:41 Quit bluebrother^ (Ping timeout: 260 seconds)
06:17:56 Join rb-bluebot [0] (~rb-bluebo@rockbox/bot/utility)
07:12:06 Quit braewoods_ (Remote host closed the connection)
07:12:22 Join braewoods_ [0] (~braewoods@user/braewoods)
07:28:48***Saving seen data "./dancer.seen"
09:28:49***No seen item changed, no save performed.
09:31:47 Join Nyaa [0] (
09:36:27 Quit Nyaa (Remote host closed the connection)
09:36:54 Join Nyaa [0] (
09:37:55 Quit hactar|ant (Ping timeout: 250 seconds)
09:58:02 Join CH23_M [0] (~CH23@revspace/participant/ch23)
09:58:12 Quit CH23_M (Client Quit)
09:58:38 Join hactar|ant [0] (~zem@
10:04:01speachy__builtin, _bilgus__: Our plugins very deliberately do not include a "memcpy" symbol, though there is a #define memcpy rb->memcpy in place.
10:04:29speachythe problem here is that the _compiler_ is replacing variable assignments with memcpy/memset in some places.
10:04:37speachyand since there's no symbol for those, it fails.
10:05:02braewoods_speachy, it occurs to me that if you can't find a way to suppress that behavior, you could try replacing that code with explicit calls that will work.
10:05:08speachyand this happens _after_ the linker does it thing and strips out any actual "memcpy" symbol because it wasn't needed
10:05:36speachy(linking/compling sorta being the same step in an LTO context)
10:05:57braewoods_But after what I recall reading in the documentation it doesn't sound like you can just turn it off.
10:06:15speachynope, it's apparently impossible to turn it off entirely
10:06:44speachywhat _should_ be possible is to create a very tiny implementation of those calls, *not* compiled with LTO, and link that into the final binary.
10:06:59speachyI just didnt' get that far
10:07:36braewoods_I wonder what criteria it uses to decide when to replace assignments with memcpy.
10:07:40speachyotherwise, that's the main holdup from enabling LTO on our plugins and codecs.
10:08:00braewoods_That's the only other angle of attack I can see.
10:08:10braewoods_Making it so it NEVER does this by changing the code.
10:08:46braewoods_I suspect it wouldn't do this for simple copys that fit into a register.
10:08:51speachybraewoods_: they're from variable initializers, and presumably does this when memset is more efficient than a series of single-value writes.
10:08:58speachy(or memcpy)
10:09:13braewoods_oh, so like int x = 0;
10:09:21speachyor struct x = y
10:09:34braewoods_One workaround would be to add explicit memcpy or memset.
10:09:42 Quit Nyaa (Read error: Connection reset by peer)
10:09:43braewoods_But I assume that would be a lot of work.
10:10:22 Join Nyaa [0] (
10:10:28speachythe C (or GCC) espects a minimal environment to always include memcpy/memset
10:11:01braewoods_speachy, RB's memcpy and memset, why can't we find a way to expose the functions backing these as symbols at the linker level?
10:11:42speachythat's what I meant by "...create a very tiny implementation..." above.
10:11:43braewoods_I have to admit, I have no real knowledge of linking for free standing code.
10:12:02speachyjust didn't get that far
10:12:09braewoods_Oh, I was thinking of just mapping the existing function at the linker level. I thought you were talking about uh
10:12:54braewoods_a wrapper that calls the function from the function pointer structured stored elsewhere in global variable storage.
10:13:13speachythere's no way to map the existing funtion at the linking level, because it doesn't actually exist.
10:13:46speachywe're talkinga bout creating the same thing
10:14:08braewoods_I thought it 'did' because it has to be callable.
10:14:13braewoods_rb->memcpy, etc.
10:15:00speachythere's still no "memcpy" symbol in the final binary, "rb->memcpy" is a function pointer in a structure.
10:15:17speachyin an _external_ structure
10:15:31speachyyou can create alises to existing symbols
10:15:31braewoods_I see.
10:16:04braewoods_I was just thinking if we could help the linker determine where the real function will be in the end result, it would work out somehow.
10:16:16braewoods_I guess not.
10:16:18speachybut the whole point of the rb-> structure is that the plugins etc are independent of the physical placement of the actual code.
10:16:40speachyotherwise in order to build plugins we'd need the symbol map of the main binary
10:18:09braewoods_It might be easiest just to expose those functions as external symbols while still maintaining the pointer to the function.
10:18:19braewoods_If you want to minimize call overhead.
10:18:37braewoods_Kinda stupid this is a problem.
10:19:19speachyexternal symbols still have to come from _somewhere_
10:19:55speachyand either we add those symbols to the plugin linker script (ie based on the main compiled binary) or we create our own wrapper that only is used if LTO is active.
10:20:12speachythe key is that it has to be an actual standalone function.
10:20:36braewoods_I see. I guess I never stopped to understand the difference between FPs and hard-coded function calls.
10:20:38speachyI agree that it's stupid that this is a problem
10:21:10speachy-fno-builtin should prevent this from happening IMO.
10:22:03braewoods_It's still mindblowing to realize how much pointers enable.
10:22:06speachybut given that "gcc requires the freestanding environment provide memcpy, memmove, memset, and memcmp" it's working as intended.
10:22:42speachyC is a thin veneer of civilization
10:22:54braewoods_It's a shame we can't just force it to use inline its own versions.
10:23:18braewoods_GCC has its own builtin versions of a lot of basic functions.
10:23:19speachyin a freestanding environment, there is no "own versions". That's the point.
10:23:37braewoods_I see.
10:23:45speachyrockbox is the one violating GCC's documented requirements
10:24:00braewoods_The only other option I can think of is related to optimization tweaking.
10:24:23speachysince the call is inserted by the optimizer instead at the source level, we don't get to use macros etc.
10:24:56speachywe don't have a lot of leeway in disabling optimizations. Best to fix this "properly"
10:27:06speachyI figured that plugins would be a better LTO candidate than the main firmware. :D
10:45:16braewoods_It kinda makes me wonder if it was really worth that layer of separation.
10:45:38braewoods_It seems GCC assumes all the symbols are exposed or something like that.
10:46:08speachyGCC assumes symbols it requires to be there ... to be there.
10:46:38braewoods_oh btw, did you read about C23? they're adding a bunch of new stuff.
10:46:47speachyAFAICT this requirement has always been there.
10:46:51braewoods_some of which used to be compiler extensions.
10:47:18braewoods_Like making auto keyword work like C++ auto is now.
10:48:39braewoods_Can't say I see much value for it in C. It's very useful in C++ because of how convoluted template types can get.
11:09:04 Join uuaaeeii [0] (~user@
11:11:36uuaaeeiiHello, isn't the partition format used for rockbox for iPod 4th gen just fat32 or exfat? Or is it something larger when it comes to larger disks or larger collections of music? My iPod is sadly toast but was able to recover the sdcard. I think the data is still good at least but maybe I am wrong since I can not mount under Windows 10. Hoping to migrate my collection to my sansa clip+
11:11:49uuaaeeiisomething different *
11:12:00speachyrockbox is all fat32.
11:12:17uuaaeeiihmm that is dire news
11:12:17speachythe drive on those things has two partitions though; the first is special but the second is where all the data resides.
11:13:32uuaaeeiispeachy I will mention if this matters at all this was using the flash sd card mod but what I am thinking of his probably that special partition that I can at least see in disk management. Sad stuff but thank you for the help.
11:28:52***Saving seen data "./dancer.seen"
11:29:43 Quit braewoods_ (Read error: Connection reset by peer)
11:29:52 Join braewoods [0] (~braewoods@user/braewoods)
11:29:52 Quit Nyaa (Read error: Connection reset by peer)
11:31:22 Join Nyaa [0] (
11:37:23 Join braewoods_ [0] (~braewoods@user/braewoods)
11:40:06 Quit braewoods (Ping timeout: 260 seconds)
11:54:45 Join S|h|a|w|n [0] (~shawn156@user/shawn/x-4432647)
12:21:17speachyhey, can someone who doesn't have an account on our bug tracker try and create an account? I saw reports of it not working but that might have been from before I pulled in the bleeding edge code.
12:42:28 Join chris_s [0] (
12:43:04chris_sI'm seeing this error when I try to access
12:43:08chris_sFatal error: Array and string offset access syntax with curly braces is no longer supported in /home/rockbox/flyspray/vendor/dapphp/securimage/securimage.php on line 2209
12:43:29buZzhehe php ftw
12:43:32buZzalways breaking itself
12:45:15chris_ssorry:/  :)
12:45:32buZzits ok, not your fault, chris_s
12:45:40buZzi bet someone upgraded php version
12:46:21chris_ssorry to be the bearer of bad news, I meant :)
12:46:28buZzhaha its fine
12:46:34speachy"Package dapphp/securimage is abandoned, you should avoid using it. No replacement was suggested."
12:46:50buZzspeachy: that saves effort on upgrading it \o/
12:47:07buZzah its a captcha script
12:47:47buZzthey mention as replacement
12:50:25speachytry now please
12:51:31buZzspeachy: seems to function
12:51:40speachyI basically just disabled it instead. unfortunately it looks like flyspray is basically dead upstream now
12:51:45buZzeven emails
12:52:00speachythere are some third party forks but nothing coalescing unfortauntely
12:52:18buZzspeachy: i like the 'knowledge' captchas
12:52:48buZzlike 'if macos is BSD, what is linux'
12:53:08buZz'what fileformat does most music on mp3players use'
12:53:10speachyI've been using it since 2006, and rockbox's install dates from 2002.
13:14:36braewoods_speachy, I wonder how hard it would be to migrate to a new bug tracker.
13:28:56***Saving seen data "./dancer.seen"
13:34:15 Join Acou_Bass [0] (
13:35:12 Quit Piece_Maker (Ping timeout: 245 seconds)
13:35:13 Nick Acou_Bass is now known as Piece_Maker (
13:43:52speachykeeping the data? it's a pretty major undertaking.
13:57:35 Join lebellium [0] (
14:24:15 Quit LjL (Read error: Connection reset by peer)
14:26:28 Join LjL [0] (~ljl@user/ljl)
14:31:29 Join othello7 [0] (
14:51:15 Quit LjL (Quit: Scappò via con la paura di arrugginire. Il giornale di ieri lo dà morto arrugginito. I becchini ne raccolgono spesso fra la gente che si lascia piovere addosso.)
14:57:19 Join LjL [0] (~ljl@user/ljl)
14:58:23 Join tr [0] (
15:00:34 Quit Nyaa (Read error: Connection reset by peer)
15:28:58***Saving seen data "./dancer.seen"
16:03:14 Join jacobk [0] (
16:08:24 Join Schimon [0] (
16:11:36 Quit chris_s (Quit: Connection closed)
16:55:32 Quit advcomp2019_ (Read error: Connection reset by peer)
17:09:26 Join advcomp2019 [0] (~advcomp20@user/advcomp2019)
17:18:53 Nick tr is now known as Nyaa (
17:28:59***Saving seen data "./dancer.seen"
18:03:00 Quit Schimon (Ping timeout: 240 seconds)
19:01:04 Join paulcarroty [0] (~paulcarro@2001:470:69fc:105::216)
19:20:59 Quit JanC (Ping timeout: 264 seconds)
19:21:26 Join JanC [0] (~janc@user/janc)
19:22:56 Join massiveH [0] (~massiveH@2600:4040:a99f:1f00:21ef:dd16:2e6b:7a61)
19:29:00***Saving seen data "./dancer.seen"
19:46:47 Quit rb-bluebot (Ping timeout: 264 seconds)
19:46:55 Join rb-bluebot [0] (~rb-bluebo@rockbox/bot/utility)
20:24:31 Quit lebellium (Quit: Leaving)
21:26:38 Quit jacobk (Ping timeout: 258 seconds)
21:29:03***Saving seen data "./dancer.seen"
21:30:21 Join jacobk [0] (
22:19:38 Join _bilgus [0] (~bilgus@
22:20:40 Quit _bilgus (Client Quit)
22:24:18 Quit massiveH (Quit: Leaving)
23:29:07***Saving seen data "./dancer.seen"

Previous day | Next day