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 | __builtin | speachy: re: memcpy/memset in plugins, I believe that those are available (and not in the rb-> API namespace) |
00:24:22 | __builtin | entirely 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] (~quassel@vps-b172b88b.vps.ovh.net) |
01:00 |
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:00 |
03:28:43 | *** | No seen item changed, no save performed. |
04:00 |
04:52:36 | | Quit PheralSparky (Read error: Connection reset by peer) |
05:00 |
05:28:44 | *** | Saving seen data "./dancer.seen" |
06:00 |
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:00 |
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:00 |
09:28:49 | *** | No seen item changed, no save performed. |
09:31:47 | | Join Nyaa [0] (Nyaaori@cyberia.club/meow/nyaaori) |
09:36:27 | | Quit Nyaa (Remote host closed the connection) |
09:36:54 | | Join Nyaa [0] (Nyaaori@cyberia.club/meow/nyaaori) |
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@97.115.154.69) |
10:00 |
10:04:01 | speachy | __builtin, _bilgus__: Our plugins very deliberately do not include a "memcpy" symbol, though there is a #define memcpy rb->memcpy in place. |
10:04:29 | speachy | the problem here is that the _compiler_ is replacing variable assignments with memcpy/memset in some places. |
10:04:37 | speachy | and since there's no symbol for those, it fails. |
10:05:02 | braewoods_ | 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:08 | speachy | and this happens _after_ the linker does it thing and strips out any actual "memcpy" symbol because it wasn't needed |
10:05:36 | speachy | (linking/compling sorta being the same step in an LTO context) |
10:05:57 | braewoods_ | But after what I recall reading in the documentation it doesn't sound like you can just turn it off. |
10:06:15 | speachy | nope, it's apparently impossible to turn it off entirely |
10:06:44 | speachy | what _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:59 | speachy | I just didnt' get that far |
10:07:36 | braewoods_ | I wonder what criteria it uses to decide when to replace assignments with memcpy. |
10:07:40 | speachy | otherwise, that's the main holdup from enabling LTO on our plugins and codecs. |
10:08:00 | braewoods_ | That's the only other angle of attack I can see. |
10:08:10 | braewoods_ | Making it so it NEVER does this by changing the code. |
10:08:46 | braewoods_ | I suspect it wouldn't do this for simple copys that fit into a register. |
10:08:51 | speachy | braewoods_: they're from variable initializers, and presumably does this when memset is more efficient than a series of single-value writes. |
10:08:58 | speachy | (or memcpy) |
10:09:13 | braewoods_ | oh, so like int x = 0; |
10:09:21 | speachy | or struct x = y |
10:09:34 | braewoods_ | One workaround would be to add explicit memcpy or memset. |
10:09:42 | | Quit Nyaa (Read error: Connection reset by peer) |
10:09:43 | braewoods_ | But I assume that would be a lot of work. |
10:10:20 | braewoods_ | Hrm... |
10:10:22 | | Join Nyaa [0] (Nyaaori@cyberia.club/meow/nyaaori) |
10:10:28 | speachy | the C (or GCC) espects a minimal environment to always include memcpy/memset |
10:11:01 | braewoods_ | 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:20 | braewoods_ | Hm. |
10:11:42 | speachy | that's what I meant by "...create a very tiny implementation..." above. |
10:11:43 | braewoods_ | I have to admit, I have no real knowledge of linking for free standing code. |
10:12:02 | speachy | just didn't get that far |
10:12:09 | braewoods_ | Oh, I was thinking of just mapping the existing function at the linker level. I thought you were talking about uh |
10:12:54 | braewoods_ | a wrapper that calls the function from the function pointer structured stored elsewhere in global variable storage. |
10:13:13 | speachy | there's no way to map the existing funtion at the linking level, because it doesn't actually exist. |
10:13:46 | speachy | we're talkinga bout creating the same thing |
10:13:59 | braewoods_ | Oh. |
10:14:08 | braewoods_ | I thought it 'did' because it has to be callable. |
10:14:13 | braewoods_ | rb->memcpy, etc. |
10:15:00 | speachy | there's still no "memcpy" symbol in the final binary, "rb->memcpy" is a function pointer in a structure. |
10:15:17 | speachy | in an _external_ structure |
10:15:31 | speachy | you can create alises to existing symbols |
10:15:31 | braewoods_ | I see. |
10:16:04 | braewoods_ | 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:16 | braewoods_ | I guess not. |
10:16:18 | speachy | but the whole point of the rb-> structure is that the plugins etc are independent of the physical placement of the actual code. |
10:16:40 | speachy | otherwise in order to build plugins we'd need the symbol map of the main binary |
10:18:09 | braewoods_ | It might be easiest just to expose those functions as external symbols while still maintaining the pointer to the function. |
10:18:19 | braewoods_ | If you want to minimize call overhead. |
10:18:37 | braewoods_ | Kinda stupid this is a problem. |
10:19:19 | speachy | external symbols still have to come from _somewhere_ |
10:19:55 | speachy | and 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:12 | speachy | the key is that it has to be an actual standalone function. |
10:20:36 | braewoods_ | I see. I guess I never stopped to understand the difference between FPs and hard-coded function calls. |
10:20:38 | speachy | I agree that it's stupid that this is a problem |
10:21:10 | speachy | -fno-builtin should prevent this from happening IMO. |
10:22:03 | braewoods_ | It's still mindblowing to realize how much pointers enable. |
10:22:06 | speachy | but given that "gcc requires the freestanding environment provide memcpy, memmove, memset, and memcmp" it's working as intended. |
10:22:42 | speachy | C is a thin veneer of civilization |
10:22:54 | braewoods_ | It's a shame we can't just force it to use inline its own versions. |
10:23:18 | braewoods_ | GCC has its own builtin versions of a lot of basic functions. |
10:23:19 | speachy | in a freestanding environment, there is no "own versions". That's the point. |
10:23:37 | braewoods_ | I see. |
10:23:45 | speachy | rockbox is the one violating GCC's documented requirements |
10:24:00 | braewoods_ | The only other option I can think of is related to optimization tweaking. |
10:24:23 | speachy | since the call is inserted by the optimizer instead at the source level, we don't get to use macros etc. |
10:24:56 | speachy | we don't have a lot of leeway in disabling optimizations. Best to fix this "properly" |
10:26:43 | braewoods_ | Fair. |
10:27:06 | speachy | I figured that plugins would be a better LTO candidate than the main firmware. :D |
10:45:16 | braewoods_ | It kinda makes me wonder if it was really worth that layer of separation. |
10:45:38 | braewoods_ | It seems GCC assumes all the symbols are exposed or something like that. |
10:46:08 | speachy | GCC assumes symbols it requires to be there ... to be there. |
10:46:38 | braewoods_ | oh btw, did you read about C23? they're adding a bunch of new stuff. |
10:46:47 | speachy | AFAICT this requirement has always been there. |
10:46:51 | braewoods_ | some of which used to be compiler extensions. |
10:47:18 | braewoods_ | Like making auto keyword work like C++ auto is now. |
10:48:39 | braewoods_ | 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:00 |
11:09:04 | | Join uuaaeeii [0] (~user@75.165.17.131) |
11:11:36 | uuaaeeii | Hello, 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:49 | uuaaeeii | something different * |
11:12:00 | speachy | rockbox is all fat32. |
11:12:17 | uuaaeeii | hmm that is dire news |
11:12:17 | speachy | the drive on those things has two partitions though; the first is special but the second is where all the data resides. |
11:13:32 | uuaaeeii | speachy 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] (Nyaaori@cyberia.club/meow/nyaaori) |
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:00 |
12:21:17 | speachy | hey, 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] (~chris_s@ip-037-201-212-240.um10.pools.vodafone-ip.de) |
12:43:04 | chris_s | I'm seeing this error when I try to access https://www.rockbox.org/tracker/register |
12:43:08 | chris_s | Fatal 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:29 | buZz | hehe php ftw |
12:43:32 | buZz | always breaking itself |
12:44:04 | speachy | damnit |
12:45:15 | chris_s | sorry:/ :) |
12:45:32 | buZz | its ok, not your fault, chris_s |
12:45:40 | buZz | i bet someone upgraded php version |
12:46:21 | chris_s | sorry to be the bearer of bad news, I meant :) |
12:46:28 | buZz | haha its fine |
12:46:34 | speachy | "Package dapphp/securimage is abandoned, you should avoid using it. No replacement was suggested." |
12:46:50 | buZz | speachy: that saves effort on upgrading it \o/ |
12:47:07 | buZz | ah its a captcha script |
12:47:47 | buZz | they mention https://www.hcaptcha.com/ as replacement |
12:50:25 | speachy | try now please |
12:51:31 | buZz | speachy: seems to function |
12:51:40 | speachy | I basically just disabled it instead. unfortunately it looks like flyspray is basically dead upstream now |
12:51:45 | buZz | even emails |
12:52:00 | speachy | there are some third party forks but nothing coalescing unfortauntely |
12:52:09 | chris_s | (y) |
12:52:18 | buZz | speachy: i like the 'knowledge' captchas |
12:52:48 | buZz | like 'if macos is BSD, what is linux' |
12:53:08 | buZz | 'what fileformat does most music on mp3players use' |
12:53:10 | speachy | I've been using it since 2006, and rockbox's install dates from 2002. |
13:00 |
13:14:36 | braewoods_ | 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] (~eddie@bolt-17-b2-v4wan-167407-cust78.vm18.cable.virginm.net) |
13:35:12 | | Quit Piece_Maker (Ping timeout: 245 seconds) |
13:35:13 | | Nick Acou_Bass is now known as Piece_Maker (~eddie@bolt-17-b2-v4wan-167407-cust78.vm18.cable.virginm.net) |
13:43:52 | speachy | keeping the data? it's a pretty major undertaking. |
13:57:35 | | Join lebellium [0] (~lebellium@2a01cb040610e00049427640e23c6343.ipv6.abo.wanadoo.fr) |
14:00 |
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] (~Thunderbi@pool-100-36-166-8.washdc.fios.verizon.net) |
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] (Nyaaori@cyberia.club/meow/nyaaori) |
15:00 |
15:00:34 | | Quit Nyaa (Read error: Connection reset by peer) |
15:28:58 | *** | Saving seen data "./dancer.seen" |
16:00 |
16:03:14 | | Join jacobk [0] (~quassel@47-186-122-163.dlls.tx.frontiernet.net) |
16:08:24 | | Join Schimon [0] (a2fe4b5ecb@irc.cheogram.com) |
16:11:36 | | Quit chris_s (Quit: Connection closed) |
16:55:32 | | Quit advcomp2019_ (Read error: Connection reset by peer) |
17:00 |
17:09:26 | | Join advcomp2019 [0] (~advcomp20@user/advcomp2019) |
17:18:53 | | Nick tr is now known as Nyaa (Nyaaori@cyberia.club/meow/nyaaori) |
17:28:59 | *** | Saving seen data "./dancer.seen" |
18:00 |
18:03:00 | | Quit Schimon (Ping timeout: 240 seconds) |
19:00 |
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:00 |
20:24:31 | | Quit lebellium (Quit: Leaving) |
21:00 |
21:26:38 | | Quit jacobk (Ping timeout: 258 seconds) |
21:29:03 | *** | Saving seen data "./dancer.seen" |
21:30:21 | | Join jacobk [0] (~quassel@47-186-122-163.dlls.tx.frontiernet.net) |
22:00 |
22:19:38 | | Join _bilgus [0] (~bilgus@162.154.213.134) |
22:20:40 | | Quit _bilgus (Client Quit) |
22:24:18 | | Quit massiveH (Quit: Leaving) |
23:00 |
23:29:07 | *** | Saving seen data "./dancer.seen" |