**** BEGIN LOGGING AT Tue Nov 24 03:00:00 2009 Nov 24 11:37:59 * ogra takes his first look at http://qa.ubuntuwire.org/ftbfs/ in lucid and boggles Nov 24 12:22:57 checking for C compiler default output file name... Nov 24 12:22:57 configure: error: in `/pulseaudio-0.9.20': Nov 24 12:22:57 configure: error: C compiler cannot create executables Nov 24 12:22:57 See `config.log' for more details. Nov 24 12:22:57 make: *** [config.status] Error 77 Nov 24 12:22:57 root@dove:/pulseaudio-0.9.20# Nov 24 12:23:00 GRRR ! Nov 24 12:32:03 ogra: do you have ccache installed? Nov 24 12:32:14 amitk, nope Nov 24 12:32:22 thats a lucid chroot under karmic Nov 24 12:32:38 ok, I see that error with dkms packages and ccache installed Nov 24 12:32:40 freshly set up, only instaled build-essential and devscripts in it Nov 24 12:37:46 ogra: is it amd64 platform? Nov 24 12:37:57 thats on an arm platform indeed Nov 24 12:38:09 we dont cross build anything in ubuntu usually Nov 24 12:39:23 uhm.. ok, i need to go now Nov 24 13:55:03 ogra: and what does config.log say? Nov 24 13:56:36 nothing special apart from: configure: exit 77 Nov 24 13:58:32 NCommander, so about pulse ... afaik the macros are for ARMv7 which is why i added that --march setting when we still were building for v5 , can you try to disable thumb instead ? Nov 24 13:59:01 generally they should work for v6 and v7 builds Nov 24 13:59:58 (they were added by the nokia community afaik, so should be for omap (i.e. v7)) Nov 24 14:00:05 ogra: Can you upload the full config.log? Nov 24 14:00:17 sure, one sec Nov 24 14:01:49 * ogra wonders how to convince chrome to not show that ugly blue when highlighting stuff Nov 24 14:02:05 lool, http://people.canonical.com/~ogra/config.log Nov 24 14:04:22 cc1: internal compiler error: Illegal instruction Nov 24 14:04:43 yeah, just saw that too Nov 24 14:04:53 i guess i should upgrade my dove kernel first :) Nov 24 14:05:24 Yeah that looks like a memory or stability issue -- Z0? Nov 24 14:05:32 Hmm no Y0 for you* Nov 24 14:05:40 Y0 but -204 kernel Nov 24 14:05:42 I mean you don't have Z0 Nov 24 14:05:49 right Nov 24 14:05:59 while at pulseaudio, can someone tell me howto add a compiler flag for one file in a automakish sourcetree properly Nov 24 14:06:03 but my kernel is outdated Nov 24 14:06:39 0.9.20-1 in debian did it wrong, so I it didn't work in 0.9.21-1 anymore Nov 24 14:11:40 suihkulokki: Don't think you can override per .o; I guess you can create custom rules or use convenience libs? Nov 24 14:11:58 Oh you can actually Nov 24 14:12:13 thats what my patch does in karmic :) Nov 24 14:12:30 See 27.8 Nov 24 14:12:41 make -C src libpulsecore_0.9.20_la-svolume_arm.lo CFLAGS+=-march=armv6 Nov 24 14:12:44 libfoo_a_CFLAGS Nov 24 14:12:49 ^^^ my karmic patch Nov 24 14:13:08 indeed yours is more elegant Nov 24 14:15:32 how would libfoo_a_CFLAGS translate to the svolume_arm.o ? Nov 24 14:16:42 suihkulokki: Depends what you're building Nov 24 14:16:55 * lool reads source Nov 24 14:18:06 suihkulokki: libpulsecore_@PA_MAJORMINORMICRO@_la-pulsecore/svolume_arm.o I think Nov 24 14:18:29 Not sure how / is handled though Nov 24 14:19:03 For the example of: Nov 24 14:19:04 noinst_LIBRARIES = libfoo.a Nov 24 14:19:05 libfoo_a_SOURCES = foo.c foo.h Nov 24 14:20:33 suihkulokki: Actually nevermind, I can't read; they basically recommend using convenience libs or noinst libs Nov 24 14:20:39 I read it too quickly Nov 24 14:20:55 jeron-mobile: Nov 24 14:21:52 So what you want is noinst_LIBRARIES = libsvolume_arm.a and libsvolume_arm_SOURCE = pulsecore/svolume_arm.c + libsvolume_arm_CFLAGS = whatever Nov 24 14:22:15 and libpulsecore_@PA_MAJORMINORMICRO@_la_LDADD = libsvolume_arm.a Nov 24 14:41:48 ogra, I'm not quite sure how to turn off thumb Nov 24 14:42:16 --nothumb ? :) Nov 24 14:42:18 (gusessing, no idea if that exists :) ) Nov 24 14:42:33 ogra, I'll have to read the manpage ;.; Nov 24 14:42:51 ogra, Dave Martin did however give quote a few flags in his talk. I might try some Nov 24 14:43:16 hmm, where is he ? Nov 24 14:43:23 i thought i saw him joining Nov 24 14:43:51 oh, that was on -meeting Nov 24 14:44:18 ogra, dmart is here as well :-) Nov 24 14:44:39 Hi Nov 24 14:44:53 ah Nov 24 14:45:07 To turn off thumb, you should use -marm Nov 24 14:45:21 Yeah Nov 24 14:45:21 ah, right ... Nov 24 14:45:30 * ogra now remembers it from the talk Nov 24 14:45:45 Too bad it's not detailed in the man page, just listed Nov 24 14:46:15 ogra, I think we should still have a bug on this. Having pulse use thumb probably is a good thing. Nov 24 14:46:29 yes Nov 24 14:46:30 Ah, yes, pulseaudio Nov 24 14:46:41 and upstream should know about it Nov 24 14:46:50 dmart, yeah, the issue is that there's some handwritten instructions in it that go bust in thumb2 mode Nov 24 14:46:53 they did some effort to add v6/7 support Nov 24 14:46:58 dmart, since it tries to use conditionals that aren't availble Nov 24 14:47:02 so will likely be intrested in thumb as well Nov 24 14:47:05 addcs/subcs Nov 24 14:47:30 yeah, that v6/7 patch is quite ugly Nov 24 14:47:44 bt nobody upstream has a clue about arm Nov 24 14:47:52 so lennart just accepted it blindly Nov 24 14:48:00 ogra, *shiver* Nov 24 14:48:26 ogra, if -marm works, lets push that, and then I'll asign a bug to myself on portng to Thumb2 mode Nov 24 14:48:33 i talked to him at the maemo summit and he said he just takes what people give him... but given he has no clue and neither HW he wont test it at all Nov 24 14:48:43 as long as it doesnt break x86 at least Nov 24 14:48:50 NCommander, cool Nov 24 14:49:11 ogra, I did some reading on thumb2 mode, but the documentation is a bit thick :-) Nov 24 14:49:12 NCommander: i'm here too *g* Nov 24 14:49:16 hey armin76 Nov 24 14:49:21 armin76, how's your handwritten thumb2 ASM? :-) Nov 24 14:49:55 NCommander: i suggest using -marm as well Nov 24 14:49:57 * armin76 runs Nov 24 14:50:04 armin76, ;-) Nov 24 14:50:26 NCommander: i 'fixed' the sigbus on firefox on sparc, you slacker :) Nov 24 14:50:40 armin76, thats nice. Now fix upstart :-) Nov 24 14:50:47 Its a bad thing when /init crashes Nov 24 14:50:56 */sbin/init Nov 24 14:50:57 on sparc? Nov 24 14:50:58 why should init crash ? Nov 24 14:51:18 ogra, it segfaults due to alignment issues on SPARC Nov 24 14:51:32 * ogra points to the channel name :P Nov 24 14:51:50 * NCommander points to armin76's last comment and leaves it at that Nov 24 14:52:00 ok, staying on topic... Nov 24 14:52:05 * NCommander should probably poke his Y1 Nov 24 14:52:14 NCommander: i'll fix it if you fix me not having an armv7 board :) Nov 24 14:52:33 armin76, you can buy imx51 hardware now :-P Nov 24 14:52:53 NCommander: i get no profit from this, you do? :) Nov 24 14:53:00 armin76, or buy a motorola droid and find a way to get root on it ;-) Nov 24 14:53:06 yeah, just win the lottery and buy a babbage board :) Nov 24 14:53:26 NCommander: can't i get your z0? :( Nov 24 14:53:27 its *only* $750 :) Nov 24 14:53:35 armin76, I never had a Z0 Nov 24 14:53:42 armin76, I have a Y0, and a y1 (which is having issues) Nov 24 14:53:52 NCommander: can i get ogra's z0? Nov 24 14:54:14 armin76, I think you should ask ogra instead of me :-) Nov 24 14:54:27 NCommander: but you can steal from him :) Nov 24 14:54:42 Oops... got distracted there Nov 24 14:54:51 armin76, I'm not flying to Germany to break into his house, hide from his dog, steal his Z0, and fly back in the cover of night Nov 24 14:55:18 boo Nov 24 14:55:18 armin76, you can get all Z0's i have atm ... Nov 24 14:55:24 I took a look at the pulseaudio issue at the end of last week... there's an explicit CFLAGS+=-march=armv6 in debian/rules. This is actually an architecture downgrade and turns off thumb2, when building for v7 Nov 24 14:55:27 hrm Nov 24 14:55:28 ogra: gimme! Nov 24 14:55:38 armin76, dont have any :P Nov 24 14:55:48 who has? :) Nov 24 14:55:56 dmart, it should turn off thumb2, but it looked like it didn't actually turn off thumb2 Nov 24 14:56:00 armin76, lool and plars Nov 24 14:56:01 dmart, it was an upgrade (i added it when we still built for v5) Nov 24 14:56:12 NCommander: how do you mean? Nov 24 14:56:14 dmart, it needs to be dropped now Nov 24 14:56:33 in later karmic it was actually a no-op Nov 24 14:56:45 ogra: yes, I see Nov 24 14:56:59 in early karmic it fixed the same code thumb chokes on now Nov 24 14:57:13 Does anyone know a list I can subscribe to to get a record of all the build failures...? doko told me at UDS, but I failed to make a note of it. Nov 24 14:57:17 which is hardcoded oma assemble stuff iirc Nov 24 14:57:19 dmart, it looked like to me it was trying to do thumb2 with armv6 instructions Nov 24 14:57:20 *omap Nov 24 14:57:31 *assembler Nov 24 14:57:37 * ogra needs a typing course Nov 24 14:57:38 dmart, http://qa.ubuntuwire.com/ftbfs/ Nov 24 14:58:14 NCommander: did you need an explicit -Wa,-mimplicit-it=thumb to get it working? I think my toolchain may be a bit out of sync, but I needed that Nov 24 14:58:29 dmart, I'm still waiting for my lucid chroot to build Nov 24 14:58:38 NCommander, hmm ? Nov 24 14:58:49 ogra, ? Nov 24 14:58:54 how did you do the testbuild that made you say it fails on thumb ? Nov 24 14:59:05 without having a lucid chroot Nov 24 14:59:08 OK; doko was going to make gcc pass -Wa,-mimplicit-it=thumb to as by default, but this was a recent suggestion and I don't know if it's merged yet. Nov 24 14:59:14 ogra, I used a PPA during UDS Nov 24 14:59:26 a *lucid* PPA ??? Nov 24 14:59:32 where did you get that ? Nov 24 14:59:32 ogra, some of us have native PPAs ;-) Nov 24 14:59:39 Oh, right-- I used the "proper" lucid toolchain :P Nov 24 14:59:44 yeah Nov 24 14:59:56 Where should I be looking? doko's PPA? Nov 24 15:00:25 dmart, for lucid toolchains? Nov 24 15:00:30 re http://qa.ubuntuwire.com/ftbfs/, is there also a list I can subscribe to? It might be easier to review failures as they occur. Nov 24 15:00:40 i dont think there is a list Nov 24 15:00:56 the uploader is the only person getting build failure notifications atm Nov 24 15:01:07 doko pointer at ubuntu-buildd-admins or something like that, but I don't see that on lists.ubuntu.com Nov 24 15:01:07 lool: gimme your z0! Nov 24 15:01:23 NCommander: lucid toolchains, yes Nov 24 15:01:40 dmart, well ... I think the answer is run lucid on ARM? :-) Nov 24 15:02:01 NCommander: that's what I was doing :) Nov 24 15:02:13 dmart, then you should already have the right toolchain Nov 24 15:02:16 that should be fine Nov 24 15:02:35 NCommander: OK, I'll update and retry. Nov 24 15:03:59 NCommander: have we also tried -marm for the problem file, instead of letting it default to Thumb-2? Because the hand-written code may have been manually optimised for ARM, this may give better performance than Thumb-2. Nov 24 15:04:31 dmart, per-file CFLAGS scare me. Nov 24 15:05:50 In general, yes; but debian/rules already has that in this case. Just a suggestion--- alternatively it might be a good idea to add a comment or raise a flag somehow reminding anyone maintaining the code later that porting to native Thumb-2 would be a good idea Nov 24 15:06:19 btw comparing .text sections, the overall code size does seem to reduce by just under 30% Nov 24 15:06:36 ...not a very comprehensive test, but it doesn't contradict our expectations. Nov 24 15:06:58 dmart, its a different file that makes things go bust Nov 24 15:07:24 dmart, is there a handy ARM to Thumb2 guide? Nov 24 15:09:31 dmart, I think the CS conditional code isn't being allowed in the block, but I'm not sure how I'm supposed to work around that Nov 24 15:20:29 ogra, actually, I found documentation on how to properly Thumb2-ize this code Nov 24 15:20:36 I'm going to try fixing it properly first, and then testing Nov 24 15:24:57 Martyn, how's your thumb2 looking these days :-)? Nov 24 15:25:15 * Martyn looks at one hand, then the other.. Nov 24 15:25:19 Looks like I have both thumbs... Nov 24 15:25:22 *silly grin* Nov 24 15:25:50 good, although we really need to verify that thumb2 vs/ full ARM really /does/ save code space Nov 24 15:25:51 * NCommander whacks Martyn with an ARM reference manual Nov 24 15:26:14 * Martyn drops the ARM TRM for Cortex A9 on NCommander Nov 24 15:26:17 Martyn, I just want a second set of eyes to make sure I'm not using IT correctly Nov 24 15:26:20 ACK Nov 24 15:26:36 * NCommander throws an execution error as I'm not TRM compatible (yet) :-) Nov 24 15:26:43 Martyn, er, using IT correctly Nov 24 15:26:45 * NCommander has never had to use it Nov 24 15:26:47 and ... Nov 24 15:26:47 NCommander: Make sure you have thumb2 support compiled into your kernel flava of choice Nov 24 15:26:48 ugh Nov 24 15:26:54 pulseaudio just uninstalled itself on dove Nov 24 15:26:55 \o/ Nov 24 15:27:01 WIN Nov 24 15:28:01 Martyn, so if I have an addcs, and movcs instructions Nov 24 15:28:12 I can do this: Nov 24 15:28:17 ITT CS Nov 24 15:28:22 ADDCS r0, %1 Nov 24 15:28:26 movcs r6, 0 Nov 24 15:28:33 to make the linker shutup about CS being in an IT block Nov 24 15:29:03 Since IT takes CS as the condition, and then additional T to tell it that movcs should also be run as true Nov 24 15:29:20 sure, but that's solving the problem by using a large brick, tied around a cricket bat, and shoved into the problem with a 10 foot ram Nov 24 15:29:53 Martyn, huh? Nov 24 15:30:10 it solves the symptom.. but I'm more curious why that code would get generated in the first place Nov 24 15:30:19 Martyn, oh, this is handwritten ASM Nov 24 15:30:23 Martyn, not auto-generated Nov 24 15:30:37 Ah, in which case you've given yourself all the rope in the world :) Nov 24 15:30:47 Martyn, this is pulseaudios codebase :-P Nov 24 15:30:55 oh. ugh Nov 24 15:30:59 I've never needed to use IT before because i've never coded in Thumb before Nov 24 15:31:09 I just wanted a sanity check to make sure I'm reading the reference page right Nov 24 15:31:15 you are Nov 24 15:31:25 Martyn, thanks Nov 24 15:31:59 Martyn, ARM's reference manuals freaking rock Nov 24 15:32:11 Want something that rocks harder? Nov 24 15:32:14 * NCommander is considering buying a dead-tree version for handy desk reference Nov 24 15:32:15 http://infocenter.arm.com/help/topic/com.arm.doc.qrc0001l/QRC0001_UAL.pdf Nov 24 15:32:24 THAT is what is printed next to my desk Nov 24 15:33:03 Martyn, OOOH, an updated version! Nov 24 15:33:12 NCommander, you should probably take a look at what angstrom does btw Nov 24 15:33:15 Martyn, (I have the older one with ARM) Nov 24 15:33:20 Yep Nov 24 15:33:21 i can imagine they already have proper fixes Nov 24 15:33:26 ogra, for pulse? Nov 24 15:33:29 yes Nov 24 15:33:34 ogra, I didn't realize they used thumb2 compiling Nov 24 15:33:59 i thnk they use every optimization omap can do Nov 24 15:34:02 1 angstrom = 1.0 × 10-10 meters - that google search was useful :-P Nov 24 15:34:23 search for "angstrom beagle" Nov 24 15:34:41 or ask in #beagle Nov 24 15:37:07 NCommander: dmart, I think the CS conditional code isn't being allowed in the block, but I'm not sure how I'm supposed to work around that: Building with v7+thumb2, you're effectively telling the assembler to pretend that that (ARM) inline assembler is unified assembler source (this is the new syntax that can be assembler to ARM and Thumb) Nov 24 15:37:15 ...however, it is actually the old ARM syntax, to it doesn't contains the IT block annotations needed for Thumb-2 Nov 24 15:37:20 gcc -Wa,-mimplicit-it=thumb asks the assembler to guess what the IT blocks should have been instead of barfing Nov 24 15:38:01 This option should be in the toolchain by default; but I'm not sure if it's merged yet; that was my earlier query. Nov 24 15:38:06 dmart, I rather just specify it properly */2 cents* Nov 24 15:39:09 NCommander: specifying it properly is preferable, but you will need #ifdefs to allow the result to assmble when compiled as ARM (e.g., for the Debian folks) Nov 24 15:39:52 Migrating over time would be good, but there might be a lot of bits of assembler to port if we try to do it all up front. Nov 24 15:40:02 The -mimplicit-it=thumb thing is used for Thumb-2 kernel builds, for example. Nov 24 15:40:25 dmart, doesn't the assembler known what the IT instruction is? Nov 24 15:40:35 (I can put #ifdef (__thumb__) or whatever the correct ifdef is Nov 24 15:42:34 NCommander: for historical reasons, GCC uses the traditional assembler syntax when compiling for ARM, and as does not understand IT blocks in this mode (unfortunately). Nov 24 15:42:48 dmart, so ifdef's it is :-/ Nov 24 15:42:53 on a sidenote using -marm works ... so we have a fallback if you dont manage Nov 24 15:43:03 * ogra just has it building Nov 24 15:43:29 ogra, thanks. I'm just dist-upgrading karmic to lucid so I can test the resulting binaries after I finish building Nov 24 15:43:31 NCommander: Absolutely--- -marm is our friend if it looks like we're wasting time on any particular package... we can fix problem cases later. Nov 24 15:43:57 NCommander, given that pulse seems to block the livefses we should probably go with it as a quick fix so we have images asap Nov 24 15:44:16 ogra, just give me a few hours to see if we can fix it properly. Nov 24 15:44:21 NCommander: feel free to throw me your code if you want me to sanity-check. Nov 24 15:44:22 yup Nov 24 15:44:31 dmart, I'll take you up on that offer Nov 24 15:44:46 NCommander, just if you dont mamange it before your holiday Nov 24 15:44:53 ogra, right, of course. Nov 24 15:45:05 ogra, we probably should have a wiki page with problem packages Nov 24 15:45:25 NCommander, we have the ftbfs list Nov 24 15:45:49 and if you add a workaround you should simply keep it in mind Nov 24 15:46:30 and indeed note it in the changelog Nov 24 15:47:39 ogra, fair enough Nov 24 15:47:40 Can anyone suggest a wiki page to track how we fixed packages. We don't have to track everything, but it would serve as a FAQ for anyone faced with this task. Nov 24 15:47:55 * NCommander isn't looking forward to getting OOo building with Thumb2 Nov 24 15:48:19 i guess the angstrom ppl solved that already Nov 24 15:48:30 dmart, i dont think we have one yet Nov 24 15:48:42 ogra, angstorm isn't built for Thumb2 according to #beagle Nov 24 15:48:50 dmart, so feel free to create one in the /ARM namespace on te wiki Nov 24 15:48:56 ok Nov 24 15:49:06 food time Nov 24 15:49:08 OK... I'll create an empty page and we can stick stuff on there Nov 24 15:49:17 oki Nov 24 15:51:26 NCommander: gcc defines a macro __thumb2__ which is probably what you want to check for in #ifdefs (maybe you could define a helper #ifdef __thumb2__ // #define THUMB2_ONLY(string) string // #else // #define THUMB2_ONLY(string) // #endif Nov 24 16:12:01 dmart, with implicate-it though, aren't we masking the problem versus properly fixing it? Nov 24 16:15:24 ^- ogra, asac Nov 24 16:16:25 NCommander, see -devel backlog Nov 24 16:16:52 adding IT is surely the best but likely produces a lot of work Nov 24 16:17:49 ogra, *grumble* Nov 24 16:17:58 NCommander, implicate-it is similar but needs to be done on a per file basis Nov 24 16:18:15 ogra, per-file basis? I thought you said the default was going to be changed to implicate-it Nov 24 16:18:20 which in case of pulse is moot because we already do it for that specific file Nov 24 16:18:31 right "going to be" Nov 24 16:18:53 That's the issue I have. Nov 24 16:18:55 * ogra just wants a livefs to check the images Nov 24 16:18:59 I rather have the issues be flushed out Nov 24 16:19:11 And then add it on a per-package basis after bugging upstreams Nov 24 16:21:53 ^- asac - your opinion? Nov 24 16:22:17 god ... the debhelper stuff in pulse takes nearly as long as the whole build Nov 24 16:23:29 * NCommander hands ogra a bottle of bleach for his eyes Nov 24 16:23:36 heh Nov 24 16:24:02 seems also that every module has an initscript nowadays Nov 24 16:24:56 ogra, my only issue with implicant-its, which will work, is we're plastering over an issue over properly fixing it. I have no objections on specifying it on a per package basis, as long as we keep note of those packages Nov 24 16:25:47 oh wow Nov 24 16:25:51 GCC ICE'ed on lucid here Nov 24 16:25:53 well, go ahead and fix the code but i doubt you can do it as quick as just switching the hack we already have Nov 24 16:26:43 i'd really like to have testable images by end of the week or even earlier Nov 24 16:27:03 "cc1: internal compiler error: Illegal instruction" Nov 24 16:27:05 Uh oh Nov 24 16:28:28 ricer Nov 24 16:29:12 NCommander, yes, i uploaded my config.log with the same error about 3h ago Nov 24 16:29:39 NCommander, though i thought its caused by using the -204 dove kernel ... intresting that it shows up on a recent one too Nov 24 16:29:53 ogra, lucid on dove doesn't even get to start X Nov 24 16:30:00 NCommander, it works flawless on the babbage Nov 24 16:30:02 It dumped me to the console Nov 24 16:30:37 CONFIG_ARM_THUMB is set in config Nov 24 16:30:45 THUMB or THUMB2 ? Nov 24 16:30:53 THUMB2 isn't even in the config file at all Nov 24 16:31:46 i doubt it has anything to do with kernel options though Nov 24 16:32:02 ogra, I'm getting a sinking feeling ATM. Nov 24 16:32:24 like ... having to do more work on dove than expected ? :) Nov 24 16:32:34 ogra, like, are we sure dove supports Thumb2 properly? Nov 24 16:32:44 well, marvell said so Nov 24 16:32:57 and are we compiling for Thumb2 properly :-)? Nov 24 16:33:00 dmart, ping? Nov 24 16:33:13 you should ping marvell :) Nov 24 16:33:17 dmart, do we need special kernel foo for Thumb2 Nov 24 16:33:48 ogra, I just want to make sure we don't need a special CONFIG_* something in the kernel Nov 24 16:33:50 * ogra doesnt think so ... only if you want the kernel binary itself to be thumb2 as i undrestood Nov 24 16:34:10 ogra, context switches and friends would have to be thumb2 aware though Nov 24 16:34:29 root@babbage2:/pulseaudio-0.9.20# ls -l ../pulseaudio_0.9.20-0ubuntu2_armel.deb Nov 24 16:34:29 -rw-r--r-- 1 root root 1081438 Nov 24 16:31 ../pulseaudio_0.9.20-0ubuntu2_armel.deb Nov 24 16:34:34 there we go Nov 24 16:34:54 ogra@babbage2:~$ grep -i thumb /boot/config-2.6.31-105-imx51 Nov 24 16:34:54 CONFIG_ARM_THUMB=y Nov 24 16:34:54 # CONFIG_ARM_THUMBEE is not set Nov 24 16:34:54 * NCommander takes his proposed patch and pops it into a PPA Nov 24 16:35:23 so as you can see, babbage doesnt have it set either Nov 24 16:35:37 THUMB is there but no THUMB2 Nov 24 16:36:16 the pulse build is done in a lucid chroot on a karmic install ... Nov 24 16:36:56 ogra, this is a pure lucid system here Nov 24 16:37:11 things are quite broken Nov 24 16:37:35 well, we use jaunty on the buildds Nov 24 16:37:40 with lucid chroots Nov 24 16:37:43 ogra, ugh Nov 24 16:37:49 ogra, I think there's an alignment fault in X Nov 24 16:37:55 :D Nov 24 16:37:56 cat alignment says User: 9, and Skipped: ( Nov 24 16:37:57 *9 Nov 24 16:37:59 when I startx Nov 24 16:38:02 that goes to 10 and 10 Nov 24 16:38:14 well, works on the babbage Nov 24 16:38:27 ogra, whats /proc/cpu/alignment say? Nov 24 16:38:45 whatever we defaulted to in karmic Nov 24 16:39:49 ogra, I'm curious if its skipping the alignment faults or not Nov 24 16:40:10 * ogra tries pulse with -mimplicit-it=thumb Nov 24 16:40:22 -marm definately worked Nov 24 16:40:50 * NCommander has a patch that adds the itt line but can't test it Nov 24 16:41:13 NCommander, i'll care for X stuff once i have images ... i wont trash my test-build systems Nov 24 16:41:32 rabeeh, ping? Nov 24 16:43:05 ogra, I think we set the default /proc/cpu/alignment to 2 (fixup) so alignment faults won't break the world Nov 24 16:43:15 ogra, for some reason, thumb2 seems to break alignment fixup on Dove Nov 24 16:43:45 ogra: did you solve configure: error: C compiler cannot create executables ? Nov 24 16:44:12 NCommander, -Wa,-mimplicit-it=thumb works too ... Nov 24 16:44:28 zumbi, no, but I can reproduce it Nov 24 16:44:34 zumbi, nope, i just use a board thats known to work :) Nov 24 16:44:42 zumbi, cc1 is abending with alignement exception, and illegal instruction Nov 24 16:44:47 since i want to get the stuff done Nov 24 16:45:09 the CC error is definately hardware bound Nov 24 16:45:35 * NCommander can't get anything done now on lucid due to this bug Nov 24 16:45:37 argh Nov 24 16:45:49 it wont work with karmic either Nov 24 16:46:01 when building cross compilers on amd64, I get similar errors, since today at my localhost it used to work, while at my remote host I got that error. I think there is something wrong on binutils Nov 24 16:47:31 ogra, which binutils you got installed? Nov 24 16:47:57 bbiab Nov 24 16:47:59 NCommander, i can tell you in ~1h when pulse is done Nov 24 16:48:07 the one thats default in lucid Nov 24 16:48:28 as i said, its a lucid chroot Nov 24 16:48:37 ogra, right, fully up-to-date then? Nov 24 16:48:39 * NCommander just wants to make sure Nov 24 16:49:00 NCommander, debootstrapped right before building, so yes Nov 24 16:49:14 unless doko uploaded something i missed within the last hour Nov 24 16:49:33 NCommander/ogra: Once you're done doing the feasibility tests, I recommend giving the thumb2 userspace (and kernel) a good workout on babbage. Cortex-A8 has some bugs that your toolchain _has_ workarounds for (if enabled), but they're not 100% fool-proof. Nov 24 16:49:44 Dove doesn't have them, since it's a separate implementation Nov 24 16:50:11 ah, that might be the cause for NCommanders probs then Nov 24 16:50:22 ojn, ogra Dove isn't Cortex A8 Nov 24 16:50:32 It's Marvell ARMADA Nov 24 16:50:34 NCommander: right, which is what I said above Nov 24 16:50:37 Babbage is Nov 24 16:50:43 right Nov 24 16:51:27 I was going to bring it up at UDS but I saw there were patches in the toolchain for it, and figured it was worth to try it first. :) Nov 24 16:52:33 we'll escalate it to marvell Nov 24 16:52:45 and talk to our toolchain maintainer Nov 24 16:52:54 thanks for the heads up Nov 24 16:55:48 NCommander: if you have some time, maybe could test with an older binutils (one from before august/september) Nov 24 17:08:45 What is the name of the Canonical/Ubuntu service that monitors your servers for you? Nov 24 17:08:54 It's driving me mad that I can't remembe rit Nov 24 17:10:38 landscape Nov 24 17:17:32 all: gcc can be made to pass -mimplicit-it=thumb to the assembler, as a permanent default. Nov 24 17:18:33 For inline assembler, the effect may be slightly non-optimal code Nov 24 17:18:52 For all other code, there will be no effect, so it's safe to have it as default. Nov 24 17:19:07 yeah Nov 24 17:19:22 and i just confirmed pulse is fine with -mimplicit-it=thumb .... Nov 24 17:19:40 it just finishes rolling the package in my testbuild Nov 24 17:20:46 Ideally, we would port everything to Thumb2, but I think that may be laborious and not so worthwhile. Unless we actually reschedule and re-optimise the code, doing it by hand won't be significantly better than the implicit-it approximation anyway. Nov 24 17:20:50 dmart, ogra, so for thumb2 on dove, the issue is at least partially alignment related. Setting alignment to nothing or warn causes a hang. Setting it to fixup causes an ABEND, and illegal instruction Nov 24 17:21:17 so if NCommander doesnt come up with a patch for the assembler code by tomorrow morning, i'll just upload that quick fix and drop it once the toochain uses it Nov 24 17:21:42 so we get a working pulse package Nov 24 17:21:54 ogra, I'm testing my fix in a PPA ATM since my board useless to compile stuff on Nov 24 17:21:59 NCommander: Going back to your kernel question, the "Thumb userspace binaries" option (CONFIG_THUMB) is all you need to enable Thumb-2 support in the kernel. Nov 24 17:22:09 dmart, bugger :-/ Nov 24 17:22:17 ah, wasnt there a THUMB2 option as well ? Nov 24 17:22:29 THUMBEE? Nov 24 17:22:37 (though i dont see one i thought that was mentioned in one of the session notes) Nov 24 17:23:28 There is no separate "THUMB2" option because actually no extra support is needed in the kernel at all. Nov 24 17:23:33 ah, nevermind. Nov 24 17:23:41 great ... we're fine then Nov 24 17:23:55 CONFIG_THUMB is enabled in all our kernels already Nov 24 17:24:00 THUMBEE is something different; turn this on, since it's useful for JITs etc.; I know there's some openjdk work looking at this. Nov 24 17:24:15 * jhobbs pokes Martyn Nov 24 17:24:17 I don't think any kernel config change is needed Nov 24 17:24:24 dmart, do you know anything about thumb2 and alignment issues? Nov 24 17:24:28 My lucid chroot seems to work OK Nov 24 17:24:36 dmart, what hardware? Nov 24 17:24:48 dmart, do you have a dove board around ? Nov 24 17:24:54 seems it has issues Nov 24 17:25:03 though i dont think its necessarily thumb related at all Nov 24 17:25:13 ogra, just for the record, are you using a Y0 or Y1? Nov 24 17:25:22 Y0 Nov 24 17:25:27 Same Nov 24 17:25:28 * NCommander tries his Y1 Nov 24 17:25:30 NCommander: i.MX51 Nov 24 17:25:40 and i had the issue with a lucid chroot on karmic Nov 24 17:26:01 while you had the same with a plain lucid install Nov 24 17:26:41 ogra, why do you think its isn't Thumb specific? Nov 24 17:27:04 why do you think it is ? Nov 24 17:27:20 its just a compile ICE, it can be caused by anything Nov 24 17:27:30 *compiler Nov 24 17:27:40 ogra, no, the binary is throwing illegal instruction Nov 24 17:27:42 Same as X Nov 24 17:27:57 especially i dont think the configure script of pulse checks anything related to thumb Nov 24 17:28:09 ogra, Try building hello world Nov 24 17:28:13 It goes boom. Nov 24 17:28:21 Apparently, alignment faulting is not enabled by default in the kernel on v6 and above, so I'm wondering why fixups are needed? Nov 24 17:28:24 right, and why does that point to thumb in your opinion ? Nov 24 17:29:00 jhobbs : What? I was on a call n stuff Nov 24 17:29:01 ogra, lets see here, We moved to Thumb2. Suddenly alignment always says Skipped: on Dove, Xorg and gcc are failing with Illegal instructions Nov 24 17:29:07 it points surely to the toolchain, but i dont see any specific pointer to thumb Nov 24 17:29:11 And I have Alignement trap: not handling instruction in dmesg Nov 24 17:29:20 NCommander, we also moved to armv7 Nov 24 17:29:59 ogra, fair enough. Nov 24 17:30:10 ogra, at least its an easily reproduce test case :-) Nov 24 17:30:11 NCommander, and see ojn's comment above Nov 24 17:30:27 ogra, about Cortex-A8 quarks? I saw Nov 24 17:30:44 yes Nov 24 17:30:53 Its irreveleant unless the workaround causes issues in non-Cortex A8 chips Nov 24 17:31:10 NCommander: can you cat /proc/cpu/alignment Nov 24 17:31:23 dmart, 2 (fixup) Nov 24 17:31:26 well, we use -march=cortex-a8, no ? Nov 24 17:31:42 dmart, if its set to not fix it, then the app just hangs Nov 24 17:31:50 dmart, User: 8/Skipped: 8 Nov 24 17:31:52 and dove isnt 100% cortex-a8 Nov 24 17:32:07 Starting X or running GCC causes that count to go up Nov 24 17:32:14 ogra, Dove isn't Cortex A8 at all Nov 24 17:32:17 All v6 processors and above support full unaligned access by default, excluding certain instructions. Alignment faulting is optional Nov 24 17:32:28 NCommander, right, thats what i mean ... Nov 24 17:32:34 NCommander: what happend if you change /proc/cpu/alingment to 1 (warn) ? Nov 24 17:32:41 ogra, (ah, English translation error :-)) Nov 24 17:32:43 dmart, apps just hang Nov 24 17:32:48 NCommander, which is why i think its rather an issue with the arch than with thumb Nov 24 17:33:05 s/arch/arch setting/ Nov 24 17:33:15 Can you do an unaligned access from ARM and see what happens? Nov 24 17:33:26 dmart, uh ... Nov 24 17:33:28 * NCommander has nothing handy Nov 24 17:33:46 dmart, got some test code for me? Nov 24 17:36:29 How about Nov 24 17:36:31 void main(void) { unsigned long long dword = 0x123456789ABCDEF0; unsigned long result; asm ( "ldr %0, [%1, #3]" : "=r" (result) : "r" (&dword) ); printf("result = %lX\n", result); } Nov 24 17:37:08 I will try this now... I think it should print result = 3456789A, without falling over Nov 24 17:39:28 dmart, hrm ... Nov 24 17:39:41 dmart, bit hard to compile it when the compiler is falling over :-) Nov 24 17:40:06 build it on karmic and run it in your chroot ? Nov 24 17:40:09 err ... Nov 24 17:40:22 hrm, you upgraded the whole thing ... nm Nov 24 17:40:59 dmart, ARM compiled it works Nov 24 17:41:11 dmart, (User faults: 2 (fixup)) Nov 24 17:41:24 dmart, this is with an arm cross-compiler Nov 24 17:42:59 Hmmm, I can send you a couple of binaries? What's the best way to do that? Nov 24 17:43:24 dmart, email probably Nov 24 17:43:41 dmart, the same binary compiled with -mtumb -march=cortex-a8 works as well on Dove Nov 24 17:44:09 Hang on a mo Nov 24 17:46:23 * ogra thinks we need a doko here .... Nov 24 17:58:23 dmart, both work on all alignment settings and don't trip an alignment fault Nov 24 17:59:04 That's what I was seeing on i.MX51... Weird... Nov 24 17:59:41 I have to diasppear soon, but can you try triggering a signal when the problem happens and catch it in gdb? It would be interesting to see what the problem code is. Nov 24 17:59:59 dmart, I'll see what I can do Nov 24 18:00:11 echo 4 >/proc/cpu/alignment enables a signal on alignment fault; though if you're getting SIGILL anyway, you might not need that Nov 24 18:00:22 dmart, yeah, that changes SIGILL to SIGBUS Nov 24 18:00:37 dmart, I need to install ddebs so I can give you decent gdb output Nov 24 18:09:26 NCommander: I didn't follow all the conversation, bug please note the armv6/7 cpus can handle unaligned access when bit 22 of the cp15 control register is set Nov 24 18:09:45 bug->but Nov 24 18:10:12 saeedb, right, but we're seeing an unusual issue on Dove Yx boards which shows up as an alignment trap Nov 24 18:10:50 Is the kernel config the same between these two kernels for CONFIG_ALIGNMENT (or CONFIG_ALIGNMENT_TRAP or whatever the name is) Nov 24 18:13:38 dmart, its CONFIG_ALIGNMENT_TRAP=y on Dovce Nov 24 18:13:41 *dove Nov 24 18:14:19 Same on imx51 Nov 24 18:15:22 saeedb: You're right, but the control register U bit is legacy only: the armv7 architecture specifies that this bit always reads as one and you can't change it Nov 24 18:18:01 I see Nov 24 18:18:57 NCommander: what is the issue that causes alignment trap? is it thumb specific? Nov 24 18:19:22 saeedb, we're not sure Nov 24 18:19:38 saeedb, karmic to lucid moved the toolchain and compiled binaries to ARMv7+Thumb from ARMv6 Nov 24 18:19:42 er, Thumb2 Nov 24 18:20:09 saeedb, so it could either be Thumb2 causing the breakage, or something in the ARMv7 instruction set Nov 24 18:20:18 saeedb, as far as I can tell, only X and GCC currently go boom Nov 24 18:20:24 As I can boot the resulting system Nov 24 18:20:31 and xsplash seems to semi-work Nov 24 18:20:33 so I'm unsure Nov 24 18:20:51 The ARMv7 instruction set doesn't contain much different from v6, for general purpose code, so Thumb-2 seems more likely. Nov 24 18:21:12 I haven't tried to boot lucid yet; I've only been running a chroot. Nov 24 18:22:55 I have to disappear now, but if you send gdb output I'll take a look. If it's possible to send me a coredump, that would be useful to look at. Nov 24 18:23:54 dmart, lucid does boot Nov 24 18:28:40 NCommander: glad to hear it :) Nov 24 18:28:46 Catch you tomorrow Nov 24 18:32:03 Ncommander: can you add some debug code in the do_aligment fucntion and check what is the instruction mode? Nov 24 18:36:02 saeedb, I checked the preprocessor flag is set for thumb2 properly, but I'm not sure how to check the register flags to see if we're in thumb2 off the top of my head Nov 24 18:43:26 home for lunch and catching up on the irc backlog. Just to let you know, I'm also seeing some of the same alignment/illegal instructions on my lucid chroot on the beagle... Nov 24 18:53:38 NCommander: the thumb mode enable when bit 5 of the cpsr is set. anyway, I think it's better to add some prints in the do_alignment, do you want me to send you a patch? Nov 24 21:56:44 saeedb, that would be nice Nov 24 21:56:49 (sorry, didn't see your last message) Nov 24 22:36:03 NCommander: sent to your gmail Nov 25 01:49:55 Alright. Anyone here who has the patches for the lange51 kernel flavor? Seems like ARM doesn't care much about the GPL, none were provided with the systems they distributed. :( **** ENDING LOGGING AT Wed Nov 25 02:59:57 2009