Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
alpha: aboot not compiling [SOLVED]
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Gentoo on Alternative Architectures
View previous topic :: View next topic  
Author Message
alex.blackbit
Advocate
Advocate


Joined: 26 Jul 2005
Posts: 2397

PostPosted: Thu Feb 08, 2007 10:26 pm    Post subject: alpha: aboot not compiling [SOLVED] Reply with quote

hello everybody!

aboot is not compiling anymore on my gentoo/alpha box. i believe it is due to a (or two) upgrades of the kernel headers.
Code:
axp ~ # emerge aboot
Calculating dependencies... done!

>>> Emerging (1 of 1) sys-boot/aboot-1.0_pre20040408 to /
 * aboot-1.0_pre20040408.tar.bz2 MD5 ;-) ...                                                                                [ ok ]
 * aboot-1.0_pre20040408.tar.bz2 size ;-) ...                                                                               [ ok ]
 * checking ebuild checksums ;-) ...                                                                                        [ ok ]
 * checking auxfile checksums ;-) ...                                                                                       [ ok ]
 * checking miscfile checksums ;-) ...                                                                                      [ ok ]
 * checking aboot-1.0_pre20040408.tar.bz2 ;-) ...                                                                           [ ok ]
>>> Unpacking source...
>>> Unpacking aboot-1.0_pre20040408.tar.bz2 to /var/tmp/portage/sys-boot/aboot-1.0_pre20040408/work
 * Applying aboot-gcc-3.4.patch ...                                                                                         [ ok ]
>>> Source unpacked.
>>> Compiling source in /var/tmp/portage/sys-boot/aboot-1.0_pre20040408/work/aboot-1.0_pre20040408 ...
gcc  -I/var/tmp/portage/sys-boot/aboot-1.0_pre20040408/work/aboot-1.0_pre20040408/include -D__ASSEMBLY__ -traditional -c -o head.o head.S
head.S:7: error: asm/system.h: No such file or directory
head.S:174: warning: no newline at end of file
make: *** [head.o] Error 1

!!! ERROR: sys-boot/aboot-1.0_pre20040408 failed.
Call stack:
  ebuild.sh, line 1614:   Called dyn_compile
  ebuild.sh, line 971:   Called qa_call 'src_compile'
  environment, line 2964:   Called src_compile
  aboot-1.0_pre20040408.ebuild, line 27:   Called die

!!! (no error message)
!!! If you need support, post the topmost build error, and the call stack if relevant.
!!! A complete build log is located at '/var/tmp/portage/sys-boot/aboot-1.0_pre20040408/temp/build.log'.

axp ~ #
for some reason asm/system.h does not exist.
i have now kernel-headers-2.6.20 installed, the problem was the same with .19.

i made a symlink for system.h, then for barrier.h, then for hwrpb.h.
finally i get:
Code:
axp ~ # emerge aboot                                                             
Calculating dependencies... done!

>>> Emerging (1 of 1) sys-boot/aboot-1.0_pre20040408 to /
 * aboot-1.0_pre20040408.tar.bz2 MD5 ;-) ...                                                                                                                              [ ok ]
 * aboot-1.0_pre20040408.tar.bz2 size ;-) ...                                                                                                                             [ ok ]
 * checking ebuild checksums ;-) ...                                                                                                                                      [ ok ]
 * checking auxfile checksums ;-) ...                                                                                                                                     [ ok ]
 * checking miscfile checksums ;-) ...                                                                                                                                    [ ok ]
 * checking aboot-1.0_pre20040408.tar.bz2 ;-) ...                                                                                                                         [ ok ]
>>> Unpacking source...
>>> Unpacking aboot-1.0_pre20040408.tar.bz2 to /var/tmp/portage/sys-boot/aboot-1.0_pre20040408/work
 * Applying aboot-gcc-3.4.patch ...                                                                                                                                       [ ok ]
>>> Source unpacked.
>>> Compiling source in /var/tmp/portage/sys-boot/aboot-1.0_pre20040408/work/aboot-1.0_pre20040408 ...
gcc  -I/var/tmp/portage/sys-boot/aboot-1.0_pre20040408/work/aboot-1.0_pre20040408/include -D__ASSEMBLY__ -traditional -c -o head.o head.S
head.S:174: warning: no newline at end of file
gcc  -I/var/tmp/portage/sys-boot/aboot-1.0_pre20040408/work/aboot-1.0_pre20040408/include -D__KERNEL__ -Os -Wall -fno-builtin -mno-fp-regs -ffixed-8 -c -o aboot.o aboot.c
In file included from aboot.c:29:
/usr/include/asm/system.h:574: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'unsigned'
aboot.c:54: error: 'PAGE_OFFSET' undeclared here (not in a function)
aboot.c: In function 'first_block':
aboot.c:92: warning: pointer targets in passing argument 1 of 'strncmp' differ in signedness
make: *** [aboot.o] Error 1

!!! ERROR: sys-boot/aboot-1.0_pre20040408 failed.
Call stack:
  ebuild.sh, line 1614:   Called dyn_compile
  ebuild.sh, line 971:   Called qa_call 'src_compile'
  environment, line 2964:   Called src_compile
  aboot-1.0_pre20040408.ebuild, line 27:   Called die

!!! (no error message)
!!! If you need support, post the topmost build error, and the call stack if relevant.
!!! A complete build log is located at '/var/tmp/portage/sys-boot/aboot-1.0_pre20040408/temp/build.log'.

axp ~ #


this is the procedure in system.h starting from line 574:
Code:
static __always_inline unsigned long
__cmpxchg(volatile void *ptr, unsigned long old, unsigned long new, int size)
{
        switch (size) {
                case 1:
                        return __cmpxchg_u8(ptr, old, new);
                case 2:
                        return __cmpxchg_u16(ptr, old, new);
                case 4:
                        return __cmpxchg_u32(ptr, old, new);
                case 8:
                        return __cmpxchg_u64(ptr, old, new);
        }
        __cmpxchg_called_with_bad_pointer();
        return old;
}
hmm, i do not see what the problem really is with aboot, but i think the header files should be part of the linux-headers package, right?

any help greatly appreciated

--alex


Last edited by alex.blackbit on Tue Feb 13, 2007 8:29 pm; edited 1 time in total
Back to top
View user's profile Send private message
mjrosenb
Tux's lil' helper
Tux's lil' helper


Joined: 12 Jun 2006
Posts: 115
Location: CMU

PostPosted: Sun Feb 11, 2007 8:52 am    Post subject: Reply with quote

The first error looks more serious than what you get after your fix, and I'll look into it as soon as I get my alpha station un-borked (WHY THE HELL DOES libncursesw.so.5 not exist). as for the secondary problem, if you feel like mucking around with some sources, then the __always_inline has been deprecated for sometime now, and has been replaced with
__attribute__((always_inline))
putting that in should fix that compile error. I'll be back in an hour or two.
_________________
I'll be mjrosenb on #${COMPUTER_RELATED_SUBJECT}
1x i386 laptop w/ Gentoo
4x i386 desktop w/ Gentoo
2x dual proc i386 w/dragonfly bsd
1x x86-64 desktop w/ Gentoo
1x i386 desktop w/ FreeBSD
1x alpha workstation w/ Gentoo
looking for more
Back to top
View user's profile Send private message
alex.blackbit
Advocate
Advocate


Joined: 26 Jul 2005
Posts: 2397

PostPosted: Sun Feb 11, 2007 12:20 pm    Post subject: Reply with quote

thanks for your help.

i am currently not at home, where my alpha is, i will try that out where i come back.
maybe you find out more in the meantime.

chears,
--alex
Back to top
View user's profile Send private message
mjrosenb
Tux's lil' helper
Tux's lil' helper


Joined: 12 Jun 2006
Posts: 115
Location: CMU

PostPosted: Sun Feb 11, 2007 10:50 pm    Post subject: Reply with quote

*sigh* what version of linux-headers are you using?
Turns out I was using linux-headers-2.6.20, and that version is missing one or two features such as asm/system.h and the contents of page.h
I'm sure that there are other things missing (or that have been relocated). Downgrading linux-headers fixed aboot, and possibly binutils, which reminds me, I need to post on my own thread about that.
_________________
I'll be mjrosenb on #${COMPUTER_RELATED_SUBJECT}
1x i386 laptop w/ Gentoo
4x i386 desktop w/ Gentoo
2x dual proc i386 w/dragonfly bsd
1x x86-64 desktop w/ Gentoo
1x i386 desktop w/ FreeBSD
1x alpha workstation w/ Gentoo
looking for more
Back to top
View user's profile Send private message
Kloeri
Retired Dev
Retired Dev


Joined: 02 Sep 2002
Posts: 144

PostPosted: Sun Feb 11, 2007 11:59 pm    Post subject: Reply with quote

I've just masked linux-headers-2.6.19+ on Alpha until we can get these problems fixed.
Back to top
View user's profile Send private message
alex.blackbit
Advocate
Advocate


Joined: 26 Jul 2005
Posts: 2397

PostPosted: Mon Feb 12, 2007 8:49 am    Post subject: Reply with quote

@Kloeri: thanks, i noticed that on http://packages.gentoo.org/
the kernel versions 2.6.19 and 2.6.20 do not work on gentoo/alpha either.
i cannot post the errors right now because i do not have access to my alpha,
but i will as soon as i can.
@mjrosenb: like posted before, 2.6.19 and 2.6.20 produce these errors.
i find this case very intersting. how can it be, that aboot compiles against older kernel headers, since the (__)always_inline thing procudes a compile error? i will of course try what happens when i change that to __attribue__.
what is going on with page.h? is that header file missing too in the kernel-headers?
Back to top
View user's profile Send private message
alex.blackbit
Advocate
Advocate


Joined: 26 Jul 2005
Posts: 2397

PostPosted: Tue Feb 13, 2007 2:54 pm    Post subject: Reply with quote

okay, the hack is growing...

the things i have done so far:
created a portage-overlay for a modified sys-boot/aboot-1.0_pre20040408.
added a newline at the end of head.S because of
Code:
head.S:174: warning: no newline at end of file
of course this is only a warning and does not really matter, but what we want is clean code, right?
changed /usr/src/linux/include/asm-alpha/system.h
Code:
--- system.h    2007-02-13 15:15:15.000000000 +0100
+++ system.h.bak        2007-02-13 15:14:24.000000000 +0100
@@ -571,7 +571,7 @@
    if something tries to do an invalid cmpxchg().  */
 extern void __cmpxchg_called_with_bad_pointer(void);
 
-static __attribute__((always_inline)) unsigned long
+static __always_inline unsigned long
 __cmpxchg(volatile void *ptr, unsigned long old, unsigned long new, int size)
 {
        switch (size) {
i made the following symlinks in /usr/include/:

lrwxrwxrwx 1 root root 42 Feb 8 23:19 barrier.h -> /usr/src/linux/include/asm-alpha/barrier.h
lrwxrwxrwx 1 root root 41 Feb 13 15:35 bitops.h -> /usr/src/linux/include/asm-alpha/bitops.h
lrwxrwxrwx 1 root root 40 Feb 8 23:20 hwrpb.h -> /usr/src/linux/include/asm-alpha/hwrpb.h
lrwxrwxrwx 1 root root 39 Feb 13 15:18 page.h -> /usr/src/linux/include/asm-alpha/page.h
lrwxrwxrwx 1 root root 41 Feb 8 23:18 system.h -> /usr/src/linux/include/asm-alpha/system.h
lrwxrwxrwx 1 root root 42 Feb 13 15:37 bitops -> /usr/src/linux/include/asm-generic/bitops/
lrwxrwxrwx 1 root root 49 Feb 13 15:29 memory_model.h -> /usr/src/linux/include/asm-generic/memory_model.h
lrwxrwxrwx 1 root root 41 Feb 13 15:29 page.h -> /usr/src/linux/include/asm-generic/page.h
lrwxrwxrwx 1 root root 37 Feb 13 15:34 bitops.h -> /usr/src/linux/include/linux/bitops.h
lrwxrwxrwx 1 root root 35 Feb 13 15:33 log2.h -> /usr/src/linux/include/linux/log2.h

i end up with that:
Code:
...
In file included from /usr/include/asm-generic/page.h:8,
                 from /usr/include/asm/page.h:98,
                 from /usr/include/asm/system.h:6,
                 from aboot.c:29:
/usr/include/linux/log2.h:32: error: expected ')' before 'n'
/usr/include/linux/log2.h:40: error: expected ')' before 'n'
...
these are two function implementations:
Code:
...
int __ilog2_u32(u32 n)
{
        return fls(n) - 1;
}
...
int __ilog2_u64(u64 n)
{
        return fls64(n) - 1;
}
...
i do not see what the problem is.
why should the parentheses be closed before the variable? i DO need a type and a variable as parameter of a function...

okay, does anybody see farer than me?
Back to top
View user's profile Send private message
alex.blackbit
Advocate
Advocate


Joined: 26 Jul 2005
Posts: 2397

PostPosted: Tue Feb 13, 2007 8:29 pm    Post subject: Reply with quote

okay, only bill gates knows why, but it works again.
after emerging the new kernel-headers package the original aboot ebuild emerged without any modifications.
there are some warnings, but they were always there.
it seems like some there was some very clever guy working at the headers.
i will append a [SOLVED] to the initial topic.

thanks everybody for the help,
--alex
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gentoo on Alternative Architectures All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum