[Buildroot] pciutils-2.2.6 fails to build for powerpc 405

Steve Calfee nospamcalfee at yahoo.com
Thu Feb 14 21:57:49 UTC 2008


Hi, 
A while back I tried to build a 823 system. I couldn't get the kernel to compile. The kernel has both ppc and powerpc trees - which one are you using for the 405? Do you have any idea why there are two and what is the important difference?

Thanks, Steve

----- Original Message ----
From: Darcy Watkins <DWatkins at tranzeo.com>
To: buildroot at uclibc.org
Cc: mj at ucw.cz
Sent: Wednesday, February 13, 2008 10:05:48 AM
Subject: Re: [Buildroot] pciutils-2.2.6 fails to build for powerpc  405


Hello,

Included 
/ 
attached 
is 
patch 
to 
allow 
pciutils 
to 
cross 
compile 
under
buildroot 
for 
non 
i386 
architectures.  
I 
believe 
that 
the 
pciutils
package 
will 
natively 
compile 
for 
non 
i386 
architectures.  
It 
failed 
to
cross 
compile 
due 
to 
the 
use 
of 
'uname' 
on 
the 
build 
machine 
by 
the
configure 
script 
to 
attempt 
to 
determine 
system 
information 
that 
applies
to 
the 
target 
machine.

I 
am 
including 
the 
original 
email 
thread 
at 
the 
end 
of 
the 
email 
since
it 
dates 
back 
to 
sep'07.

The 
updated 
configure 
script 
will 
now 
check 
the 
$CC 
variable.  
If 
it 
is
a 
simple 
compiler 
name 
such 
as 
"gcc" 
or 
"cc", 
it 
will 
assume 
native
compile.  
If 
is 
sees 
the 
compiler 
name 
of 
the 
form 
of
"powerpc-linux-uclibc-gcc" 
it 
will 
assume 
cross 
compiled.

For 
cross 
compile, 
I 
pipe 
the 
basename 
into 
'cut' 
and 
get 
cpu 
from 
the
first 
part 
of 
the 
name 
and 
the 
sys 
from 
the 
second.  
For 
native 
compile,
I 
just 
allow 
the 
existing 
usage 
of 
'uname' 
to 
prevail.

For 
buildroot 
project, 
the 
attached 
can 
simply 
replace:
  
 
Buildroot/package/pciutils/pciutils.patch

For 
pciutils 
(upstream 
project) 
the 
patch 
will 
update:
  
 
pciutils-2.2.6/lib/configure

The 
patch 
would 
need 
to 
be 
in 
the 
buildroot 
project 
until 
such 
a 
time
that 
the 
updated 
script 
comes 
into 
buildroot 
from 
the 
upstream 
project.

The 
patch 
is 
below 
for 
perusal, 
and 
attached 
as 
a 
file 
to 
ensure 
that
Windows 
/ 
Outlook 
doesn't 
mangle 
it 
up.

--- 
pciutils-2.2.6/lib/configure.theorig    
2008-02-12
10:56:24.000000000 
-0800
+++ 
pciutils-2.2.6/lib/configure    
2008-02-12 
10:59:05.000000000
-0800
@@ 
-12,6 
+12,21 
@@ 
echo_n() 
{
 
echo_n 
"Configuring 
libpci 
for 
your 
system..."
 
idsdir=${1:-/usr/share}
 
version=${2:-0.0}
+if 
[ 
$CC 
] 
; 
then
+    
# 
Cross 
compiling 
is 
assumed 
if 
$CC 
is 
of 
the 
form
$cpu-$sys[-$variant]-$compiler
+    
# 
i.e. 
not 
simply 
"gcc", 
"cc", 
etc.
+    
sys=`basename 
$CC 
| 
cut 
-d 
'-' 
-f 
2`
+    
if 
[ 
"$sys" 
== 
"`basename 
$CC`" 
] 
; 
then
+    
    
# 
Native 
compiled
+    
    
unset 
sys
+    
else
+    
    
cpu=`basename 
$CC 
| 
cut 
-d 
'-' 
-f 
1`
+    
    
rel=$4
+    
    
echo 
"cross-compiled 
for 
${cpu}-${sys} 
$rel 
using: 
$CC"
+    
fi
+fi
+
+if 
[ 
! 
$sys 
] 
; 
then
 
sys=`uname 
-s`
 
rel=`uname 
-r`
 
if 
[ 
"$sys" 
= 
"AIX" 
-a 
-x 
/usr/bin/oslevel 
-a 
-x 
/usr/sbin/lsattr 
]
@@ 
-33,6 
+48,7 
@@ 
cpu=`echo 
$host 
| 
sed 
's/^\([^-]*\)-\([^
 
sys=`echo 
$host 
| 
sed 
's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 
rel=${4:-$rel}
 
echo 
" 
$host 
$rel"
+fi
 
zlib=$5
 
 
c=config.h

I 
have 
tested 
this 
for 
buildroot 
cross 
compile 
on 
an 
i386 
linux 
(fc6)
build 
machine 
for 
powerpc 
target 
to 
run 
on 
embedded 
linux.  
I 
have 
not
tested 
for 
any 
other 
architecture 
(or 
build 
machine 
config).

Regards,

Darcy



-----Original 
Message-----
From: 
buildroot-bounces at uclibc.org 
[mailto:buildroot-bounces at uclibc.org]
On 
Behalf 
Of 
Darcy 
Watkins
Sent: 
Friday, 
September 
14, 
2007 
8:02 
AM
To: 
buildroot at uclibc.org
Subject: 
Re: 
[Buildroot] 
pciutils-2.2.6 
fails 
to 
build 
for 
powerpc 
405

Hello 
Bernhard 
et 
al,

I 
checked 
into 
this.  
Extracted 
from 
email 
response 
from 
Martin 
who 
owns
/ 
maintains 
PCI 
utils...

>> 
I 
believe 
that 
in 
order 
to 
properly 
support 
cross 
compiling, 
the 
>> 
configure 
scripts 
need 
to 
check 
the 
variables 
normally 
associated
with 
>> 
cross 
compiling 
and 
target 
architecture 
rather 
than 
using 
the 
"uname"
>> 
utility 
of 
the 
machine 
running 
the 
build 
(otherwise 
it 
will 
configure

>> 
for 
the 
build 
machine 
and 
then 
attempt 
to 
cross 
compile 
it 
for 
the 
>> 
target).
>
>Which 
variables 
do 
you 
have 
in 
mind?

I 
looked 
at 
the 
"configure" 
script 
and 
put 
in 
a 
few 
"echo"'s 
to 
spit 
out
typical 
cross 
compile 
variables 
that 
are 
set.  
I 
notice 
that 
$ARCH 
and
$CROSS_COMPILE 
are 
not 
set 
when 
using 
buildroot.  
It 
appears 
that 
the
only 
one 
reliable 
(I 
know 
of) 
is 
$CC.  
When 
using 
buildroot 
to 
compile
for 
powerpc, 
I 
see 
something 
like:

  
<path 
to 
my 
toolchain>/powerpc-linux-uclibc-gcc

So 
I 
could 
suggest 
to 
Martin 
a 
check 
of 
$CC 
for 
a 
prefix 
in 
front 
of 
the
gcc 
(after 
any 
path).  
If 
so 
then 
extract 
contents 
as 
follows:

  
Cpu 
<== 
from 
the 
prefix 
up 
to 
the 
first 
"-"
  
Sys 
<== 
from 
the 
prefix 
after 
the 
first 
"-" 
to 
the 
"-" 
before 
the 
gcc
  
Host 
<== 
I 
believe 
that 
this 
should 
still 
be 
derived 
from 
"uname"
since 
it
  
  
  
  
  
 
describes 
the 
build 
machine 
not 
the 
target 
machine

++++++++++
*** 
DLW 
feb13,2008 
- 
Host 
will 
be 
derived 
from 
cpu 
and 
sys 
as 
before 
for
native 
compile 
and 
not 
be 
used 
at 
all 
for 
cross 
compile.
++++++++++

If 
there 
is 
no 
prefix 
in 
front 
of 
the 
"gcc" 
then 
assume 
not 
cross
compiling 
(native 
compile) 
and 
use 
"uname" 
as 
is 
done 
at 
present.

I 
think 
that 
"linux-uclibc" 
will 
work 
out 
OK.

Ultimately, 
at 
this 
point, 
it 
appears 
that 
we 
only 
need 
sufficient 
logic
to 
ensure 
that 
$cpu 
takes 
on 
a 
value 
other 
than 
"i386" 
when 
cross
compiling 
for 
other 
architectures, 
because 
that 
is 
all 
the 
configure
script 
checks 
for 
now.

I 
don't 
know 
how 
this 
will 
behave 
for 
native 
compiling 
on 
all 
the 
other
operating 
systems 
(BSD, 
cygwin, 
etc).  
Is 
there 
a 
better 
variable 
to 
use
than 
$CC?

Regards,

Darcy


-----Original 
Message-----
From: 
Bernhard 
Fischer 
[mailto:rep.dot.nop at gmail.com] 
Sent: 
Thursday, 
September 
13, 
2007 
2:26 
AM
To: 
Darcy 
Watkins
Cc: 
buildroot at uclibc.org
Subject: 
Re: 
[Buildroot] 
pciutils-2.2.6 
fails 
to 
build 
for 
powerpc 
405

--snip!--

>I 
think 
that 
the 
short 
solution 
is 
to 
patch 
line 
#23 
so 
that 
it 
derives
>cpu 
from 
architecture 
variables 
instead 
of 
the 
output 
of 
uname.

Sounds 
ok. 
Is 
this 
already 
fixed 
updstream? 
If 
not 
it 
would 
be 
nice 
if
you 
could 
make 
sure 
that 
we 
can 
inherit 
a 
working 
version 
from
upstream..
_______________________________________________
buildroot 
mailing 
list
buildroot at uclibc.org
http://busybox.net/mailman/listinfo/buildroot


-----Inline Attachment Follows-----

--- 
pciutils-2.2.6/lib/configure.theorig    
2008-02-12 
10:56:24.000000000 
-0800
+++ 
pciutils-2.2.6/lib/configure    
2008-02-12 
10:59:05.000000000 
-0800
@@ 
-12,6 
+12,21 
@@ 
echo_n() 
{
 
echo_n 
"Configuring 
libpci 
for 
your 
system..."
 
idsdir=${1:-/usr/share}
 
version=${2:-0.0}
+if 
[ 
$CC 
] 
; 
then
+    
# 
Cross 
compiling 
is 
assumed 
if 
$CC 
is 
of 
the 
form 
$cpu-$sys[-$variant]-$compiler
+    
# 
i.e. 
not 
simply 
"gcc", 
"cc", 
etc.
+    
sys=`basename 
$CC 
| 
cut 
-d 
'-' 
-f 
2`
+    
if 
[ 
"$sys" 
== 
"`basename 
$CC`" 
] 
; 
then
+    
    
# 
Native 
compiled
+    
    
unset 
sys
+    
else
+    
    
cpu=`basename 
$CC 
| 
cut 
-d 
'-' 
-f 
1`
+    
    
rel=$4
+    
    
echo 
"cross-compiled 
for 
${cpu}-${sys} 
$rel 
using: 
$CC"
+    
fi
+fi
+
+if 
[ 
! 
$sys 
] 
; 
then
 
sys=`uname 
-s`
 
rel=`uname 
-r`
 
if 
[ 
"$sys" 
= 
"AIX" 
-a 
-x 
/usr/bin/oslevel 
-a 
-x 
/usr/sbin/lsattr 
]
@@ 
-33,6 
+48,7 
@@ 
cpu=`echo 
$host 
| 
sed 
's/^\([^-]*\)-\([^
 
sys=`echo 
$host 
| 
sed 
's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 
rel=${4:-$rel}
 
echo 
" 
$host 
$rel"
+fi
 
zlib=$5
 
 
c=config.h



-----Inline Attachment Follows-----

_______________________________________________
buildroot 
mailing 
list
buildroot at uclibc.org
http://busybox.net/mailman/listinfo/buildroot






      ____________________________________________________________________________________
Never miss a thing.  Make Yahoo your home page. 
http://www.yahoo.com/r/hs
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.buildroot.org/pipermail/buildroot/attachments/20080214/a599f886/attachment-0001.html>


More information about the buildroot mailing list