William Harrington | 4 Nov 01:43 2014

Fwd: CLFS Target Architectures


Hello,

I build CLFS on my PowerMac G3 and G4 regularly. It would be nice if the instructions could stay, but I guess I understand if they have to go. I use the Systemd version by the way, I dont care much for Sysvinit anymore. I do not use MIPS or MIPS64, although I am in the process of purchasing a machine for PPC64.

Douglas Reno


_______________________________________________
Clfs-support mailing list
Clfs-support <at> lists.cross-lfs.org
http://lists.cross-lfs.org/listinfo.cgi/clfs-support-cross-lfs.org
David Jenkins | 30 Oct 11:02 2014
Picon

CLFS for Tilera TileGX Multilib - successful attempt + steps taken

Hi,

Following my previous post yesterday - I think I've found the issue.
I now managed to complete section 5 (building the cross-compilation
toolchain) by following CLFS-3.0.0-SYSVINIT for PowerPC64-Multilib
with the deviations listed below.
Using this I compiled a "hello world" program with the 4 combinations
(static/dynamic X 32/64) and tested it on an actual TileGX platform
and it works fine.

I am posting as it may be useful for someone who is trying to do the
same. In addition someone with more knowledge may be able to clean up
the steps a bit so TileGX can be added to the (excellent!) CLFS book.

David

-----
HOST DETAILS
===========
Steps tested on this host:
- Architecture: Intel x64

root <at> vm-ubuntu64:~# uname -a
Linux vm-ubuntu64 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08
UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

- Distribution: Ubuntu 14.04.1LTS
root <at> vm-ubuntu64:~# cat /etc/issue
Ubuntu 14.04.1 LTS \n \l

- Packages installed after a clean Ubuntu installation:
sudo apt-get install build-essential texinfo gawk bison gettext
autoconf zlib1g-dev

DEVIATIONS FROM CLFS-3.0.0-SYSVINIT PowerPC64-Multilib
==============================================
Section 4.6
CLFS_TARGET=tilegx-unknown-linux-gnu
CLFS_TARGET32=tilegx-unknown-linux-gnu

Section 5.3
Change ARCH=powerpc to ARCH=tilegx

Section 5.13
After unpacking the sources and before issuing the "configure"
command, do these steps:

- Create feedback.h file:

cat > /tools/include/feedback.h << EOF
#ifndef _FEEDBACK_H
#define _FEEDBACK_H 1

#ifdef __ASSEMBLER__

/* Stub defines for feedback instrumentation.  */
#define FEEDBACK_ENTER_EXPLICIT(FUNCNAME, SECNAME, SIZE)
#define FEEDBACK_ENTER(FUNCNAME)
#define FEEDBACK_REENTER(FUNCNAME)
#define FEEDBACK_ENTRY(FUNCNAME, SECNAME, SIZE)

#endif /* __ASSEMBLER__ */

#endif /* _FEEDBACK_H */
EOF

- Create dummy stubs.h file (will be overwritten in section 5.14+5.15
when glibc installs):

touch /tools/include/gnu/stubs.h

- Make gmp.h available in the /tools/include directory:

ln -s /cross-tools/include/gmp.h /tools/include/gmp.h

- Install glibc headers (just the headers - don't compile) - run this
from somewhere you unpacked the glibc sources:

mkdir -v ../glibchdr
cd ../glibchdr

cat > config.cache << EOF
libc_cv_autoconf_works=yes
libc_cv_ssp=no
libc_cv_predef_stack_protector=no
libc_cv_z_relro=yes
EOF

../glibc-2.19/configure \
    --prefix=/tools \
    --host=${CLFS_TARGET} \
    --build=${CLFS_HOST} \
    --disable-profile \
    --enable-kernel=2.6.32 \
    --with-binutils=/cross-tools/bin \
    --with-headers=/tools/include \
    --enable-obsolete-rpc \
    --cache-file=config.cache

make install-headers

(NOTE - some errors will be shown but the headers will be installed in
/tools/include)

- Fix the target makefile for tilegx; Tilera assumed 32bit libraries
will go in /lib32 and 64-bit libraries in /lib; CLFS assumes 32-bit in
/lib and 64-bit in /lib64. This causes linking errors during build. In
the GCC source directory:

vi gcc/config/tilegx/t-tilegx

Then, change the line:
MULTILIB_OSDIRNAMES = ../lib ../lib32

to these two lines (taken from the powerpc target makefile):
MULTILIB_OSDIRNAMES := m64=../lib64
MULTILIB_OSDIRNAMES += m32=$(if $(wildcard $(shell echo
$(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)

- You can now proceed with configure and make for the bootstrap GCC

Section 5.16
If using a separate source directory from section 5.13, before the
"configure" command repeat the steps above to fix the t-tilegx file
William Harrington | 19 Oct 04:37 2014

Announcing CLFS 3.0.0 Release

Announcing CLFS 3.0.0 Release

The CLFS Development team is pleased to announce the CLFS 3.0.0 for SYSTEMD and SYSVINIT.

This release features Glibc 2.19, GCC 4.8.3, Binutils 2.24 and Linux 3.14.

CLFS 3.0.0 supports: x86, x86_64 Multilib, x86_64 Pure 64, Sparc, Sparc64 Multilib, Sparc64 Pure 64,
PowerPC, PowerPC64 Multilib, PowerPC64 Pure 64, MIPS 32, MIPS 64 Multilib and MIPS 64 Pure 64.

You may view the book online at:

http://cross-lfs.org/view/CLFS-3.0.0-SYSTEMD/

http://cross-lfs.org/view/CLFS-3.0.0-SYSVINIT/

Download the book here:

http://cross-lfs.org/files/BOOK/3.0.0/SYSTEMD/

http://cross-lfs.org/files/BOOK/3.0.0/SYSVINIT/

Packages for this version of the book can be found individually here:

http://cross-lfs.org/files/packages/3.0.0/SYSTEMD/

http://cross-lfs.org/files/packages/3.0.0/SYSVINIT/

If you wish to render it yourself you can download the XML from the site:

http://cross-lfs.org/files/BOOK/3.0.0/SYSTEMD/CLFS-3.0.0-SYSTEMD-XML.tar.xz

http://cross-lfs.org/files/BOOK/3.0.0/SYSVINIT/CLFS-3.0.0-SYSVINIT-XML.tar.xz
William Harrington | 10 Oct 05:41 2014

CLFS 3.0.0 Milestone Release

Greetings CLFS gurus,

October 25 is the milestone release.

The 3.0.0 book will be released at that time or before.

Shadow has been updated to 4.2.1 and kernel up to 3.14.21.
Shadow had some security issues which needed 4.1.5.1 dropped and moved to 4.2.1.

We can look through the tickets and see if any thing else is major. I haven’t ran across anything that’d
be major before a release. It seems pretty trivial.

I’m proposing removing mips and adding ARM to the next book.
We also have the issue of attempting to simplify the xml for multiple arches, but that will require lots of work.

Unless anyone has some major issues, the book will be released at Oct 25 or before.

Please check http://trac.cross-lfs.org/report for any open tickets.

Sincerely,

Wiliam Harrington
Tom Janson | 20 Sep 02:46 2014
Picon
Picon

Netplug installation: bootscripts

Hi,

I’ve been following the guide and I’ve enjoyed it a lot so far. Thanks
for all the work! I just ran into a slight issue, though:

Chapter "8.5.2. Installation of Netplug Bootscripts" [1] refers to a
make install-netplug target in the bootscripts, but that doesn’t
exist. (Bootscripts from [2] as per the guide.) A quick look in the
git history suggests that it never existed, but that there was a
networking script that was removed [3].

Instead, I followed the instructions in the CBLFS wiki [4].

Is this correct? Is this a loose end, or did I misread something?

-- TJ

[1] http://cross-lfs.org/view/clfs-embedded/arm/beyond/netplug.html
[2] http://git.cross-lfs.org/?p=bootscripts-embedded.git
[3] http://git.cross-lfs.org/?p=bootscripts-embedded.git;a=commit;h=c91cb03da502350e981e3ffa0e7a001c864c9a47
[4] http://cblfs.cross-lfs.org/index.php/Netplug#Configuring
_______________________________________________
Clfs-support mailing list
Clfs-support <at> lists.cross-lfs.org
http://lists.cross-lfs.org/listinfo.cgi/clfs-support-cross-lfs.org
Dave Gomboc | 10 Sep 03:24 2014
Picon

problem report for 3.0.0 beta 1 PowerPC SysVInit instructions

Hello,

ISL configure fails with a message indicating that it could not
find the symbol "main" within gmp.  Indeed, there is no such
symbol within the file at /cross-tools/lib/libgmp.so.10.2.0
(according to "nm -C /cross-tools/lib/libgmp.so.10.2.0 | grep
main").  Plenty of other symbols are present, though.

tar xf ${CLFS_SOURCES}/isl-0.12.2.tar.lzma
cd isl-0.12.2/
LDFLAGS="-Wl,-rpath,/cross-tools/lib" ./configure
--prefix=/cross-tools --disable-static --with-gmp-prefix=/cross-tools
make
make install
cd ..
rm -rf isl-0.12.2/

A relevant excerpt from config.log is below.

What is the adjustment to the instructions that you recommend?

Thanks,
Dave Gomboc

configure:17242: checking which gmp to use
configure:17244: result: system
configure:17266: checking gmp.h usability
configure:17266: gcc -c -O3 -fomit-frame-pointer -malign-double
-fstrict-aliasing -ffast-math -I/cross-tools/include  conftest.c >&5
configure:17266: $? = 0
configure:17266: result: yes
configure:17266: checking gmp.h presence
configure:17266: gcc -E -I/cross-tools/include  conftest.c
configure:17266: $? = 0
configure:17266: result: yes
configure:17266: checking for gmp.h
configure:17266: result: yes
configure:17274: checking for main in -lgmp
configure:17293: gcc -o conftest -O3 -fomit-frame-pointer
-malign-double -fstrict-aliasing -ffast-math -I/cross-tools/include
-L/cross-tools/lib -Wl,-rpath,/cross-tools/lib conftest.c -lgmp  -lgmp
 >&5
/usr/bin/ld: skipping incompatible /cross-tools/lib/libgmp.so when
searching for -lgmp
/usr/bin/ld: cannot find -lgmp
/usr/bin/ld: skipping incompatible /cross-tools/lib/libgmp.so when
searching for -lgmp
/usr/bin/ld: cannot find -lgmp
collect2: error: ld returned 1 exit status
configure:17293: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "isl"
| #define PACKAGE_TARNAME "isl"
| #define PACKAGE_VERSION "0.12.2"
| #define PACKAGE_STRING "isl 0.12.2"
| #define PACKAGE_BUGREPORT "isl-development <at> googlegroups.com"
| #define PACKAGE_URL ""
| #define PACKAGE "isl"
| #define VERSION "0.12.2"
| #define GCC_WARN_UNUSED_RESULT __attribute__((__warn_unused_result__))
| #define HAVE___ATTRIBUTE__ 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h.  */
|
|
| int
| main ()
| {
| return main ();
|   ;
|   return 0;
| }
configure:17302: result: no
configure:17312: error: gmp library not found

Running the 'final' gcc

Hi,

I am running the final gcc, not the native gcc from chapter 10. I have changed some of the directory names to match how our stuff is built.

IE lib->lib32 etc.using –libdir arguments. This is using the V3.0 book.

 

In our build, the check for a working gcc shows in the config.log that it is failing because ld can’t find crt1.o or crti.o.

What I see is that crti.o and crt1.o are in /tools/libxx while the other crtxxx.o are in the gcc/4.8.3/ directory in /cross-tools where the linker is looking for them. Using strace I can see that gcc/collect2/ld is looking in /cross-tools and not at all in any /tools directory.

I am trying to find out if my changes to the config lines is causing these files to be put in the wrong place or the SEARCH_DIR that ld is using is wrong.

I can provide the changes to the config lines if that makes a difference

Thanks

.

-Barry

 

CONFIDENTIALITY NOTICE: The information contained in this email message is intended only for use of the intended recipient. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please immediately delete it from your system and notify the sender by replying to this email.  Thank you.

_______________________________________________
Clfs-support mailing list
Clfs-support <at> lists.cross-lfs.org
http://lists.cross-lfs.org/listinfo.cgi/clfs-support-cross-lfs.org

LDD shows local dependencies

Hi,

I am building CLFS for x86-unknown using the first few chapters of the V3.0 book from GIT. I was told this is stable enough now to use. Can’t get v2.1 to work correctly

What I am confused by is that when we try to run the GCC cross-compiler on a different host system than the one it was built on it fails. It tries to load the wrong (local) glibc from the /lib64 directory.

LDD on the x86_64-unk…..-gcc in the cross-tools/bin directory shows dependencies on local libc.so.6 and is trying to load the wrong version of glibc. I assumed an ldd on the cross gcc should only try to reference libraries installed in /cross-tools. The libc.so only seems to be installed in /tools not /crosstools and LD_PATH is not loading that one (LD_PATH is empty).

There is a gcc-4.8.3 but it doesn’t seem to be used by the cross-tools when I try to build things using it.

Any ideas?

Thanks

-Barry

 

CONFIDENTIALITY NOTICE: The information contained in this email message is intended only for use of the intended recipient. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please immediately delete it from your system and notify the sender by replying to this email.  Thank you.

_______________________________________________
Clfs-support mailing list
Clfs-support <at> lists.cross-lfs.org
http://lists.cross-lfs.org/listinfo.cgi/clfs-support-cross-lfs.org

LDD shows local dependenciesw

Hi,

I am building CLFS for x86-unknown using the first few chapters of the V3.0 book from GIT. I was told this is stable enough now to use. Can’t get v2.1 to work correctly

What I am confused by is that when we try to run the GCC cross-compiler on a different host system than the one it was built on it fails. It tries to load the wrong (local) glibc from the /lib64 directory.

LDD on the x86_64-unk…..-gcc in the cross-tools/bin directory shows dependencies on local libc.so.6 and is trying to load the wrong version of glibc. I assumed an ldd on the cross gcc should only try to reference libraries installed in /cross-tools. The libc.so only seems to be installed in /tools not /crosstools and LD_PATH is not loading that one (LD_PATH is empty).

There is a gcc-4.8.3 but it doesn’t seem to be used by the cross-tools when I try to build things using it.

Any ideas?

Thanks

-Barry

 

 

CONFIDENTIALITY NOTICE: The information contained in this email message is intended only for use of the intended recipient. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please immediately delete it from your system and notify the sender by replying to this email.  Thank you.

_______________________________________________
Clfs-support mailing list
Clfs-support <at> lists.cross-lfs.org
http://lists.cross-lfs.org/listinfo.cgi/clfs-support-cross-lfs.org
nagudaku | 7 Jun 20:58 2014
Picon

problem compiling glibc-2.19 on cygwin

i'm getting an error when cross-compiling glibc-2.19 with host=cygwin and target=x86_64-unknown-linux-gnu
i've followed the instructions in CLFS  GIT-20140604-x86_64-Pure64

error message during 'make' is as below:

...snip...

make  subdir=resolv -C resolv ..=../ others
make[2]: Entering directory '/mnt/clfs/sources/work/glibc-2.19/resolv'
make[2]: Nothing to be done for 'others'.
make[2]: Leaving directory '/mnt/clfs/sources/work/glibc-2.19/resolv'
make  subdir=nss -C nss ..=../ others
make  subdir=hesiod -C hesiod ..=../ others
make[2]: Entering directory '/mnt/clfs/sources/work/glibc-2.19/hesiod'
make[2]: Nothing to be done for 'others'.
make[2]: Leaving directory '/mnt/clfs/sources/work/glibc-2.19/hesiod'
make  subdir=sunrpc -C sunrpc ..=../ others
make[2]: Entering directory '/mnt/clfs/sources/work/glibc-2.19/sunrpc'
x86_64-unknown-linux-gnu-gcc -m64 rpc_main.c -c -std=gnu99 -fgnu89-inline  -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -frounding-math -g -Wstrict-prototypes        -D_RPC_THREAD_SAFE_ -I../include -I/mnt/clfs/sources/work/glibc-build/sunrpc  -I/mnt/clfs/sources/work/glibc-build  -I../sysdeps/unix/sysv/linux/x86_64/64/nptl  -I../sysdeps/unix/sysv/linux/x86_64/64  -I../nptl/sysdeps/unix/sysv/linux/x86_64  -I../nptl/sysdeps/unix/sysv/linux/x86  -I../sysdeps/unix/sysv/linux/x86  -I../sysdeps/unix/sysv/linux/x86_64  -I../sysdeps/unix/sysv/linux/wordsize-64  -I../nptl/sysdeps/unix/sysv/linux  -I../nptl/sysdeps/pthread  -I../sysdeps/pthread  -I../ports/sysdeps/unix/sysv/linux  -I../sysdeps/unix/sysv/linux  -I../sysdeps/gnu  -I../sysdeps/unix/inet  -I../nptl/sysdeps/unix/sysv  -I../ports/sysdeps/unix/sysv  -I../sysdeps/unix/sysv  -I../sysdeps/unix/x86_64  -I../nptl/sysdeps/unix  -I../ports/sysdeps/unix  -I../sysdeps/unix  -I../sysdeps/posix  -I../nptl/sysdeps/x86_64/64  -I../sysdeps/x86_64/64  -I../sysdeps/x86_64/fpu/multiarch  -I../sysdeps/x86_64/fpu  -I../sysdeps/x86/fpu  -I../sysdeps/x86_64/multiarch  -I../nptl/sysdeps/x86_64  -I../sysdeps/x86_64  -I../sysdeps/x86  -I../sysdeps/ieee754/ldbl-96  -I../sysdeps/ieee754/dbl-64/wordsize-64  -I../sysdeps/ieee754/dbl-64  -I../sysdeps/ieee754/flt-32  -I../sysdeps/wordsize-64  -I../sysdeps/ieee754  -I../sysdeps/generic  -I../nptl  -I../ports  -I.. -I../libio -I. -nostdinc -isystem /mnt/clfs/cross-tools/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.8.3/include -isystem /mnt/clfs/cross-tools/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.8.3/include-fixed -isystem /tools/include  -D_LIBC_REENTRANT -include ../include/libc-symbols.h   -DNOT_IN_libc=1    -D_RPC_THREAD_SAFE_ -o /mnt/clfs/sources/work/glibc-build/sunrpc/rpc_main.o -MD -MP -MF /mnt/clfs/sources/work/glibc-build/sunrpc/rpc_main.o.dt -MT /mnt/clfs/sources/work/glibc-build/sunrpc/rpc_main.o
gcc   -D_RPC_THREAD_SAFE_ -D_GNU_SOURCE -DIS_IN_build -include /mnt/clfs/sources/work/glibc-build/config.h rpc_main.c \
        -o /mnt/clfs/sources/work/glibc-build/sunrpc/cross-rpc_main.o -MMD -MP -MF /mnt/clfs/sources/work/glibc-build/sunrpc/cross-rpc_main.o.dt -MT /mnt/clfs/sources/work/glibc-build/sunrpc/cross-rpc_main.o -c
rpc_main.c: In function 'find_cpp':
rpc_main.c:329:17: error: storage size of 'buf' isn't known
   struct stat64 buf;
                 ^
rpc_main.c: In function 'checkfiles':
rpc_main.c:1117:17: error: storage size of 'buf' isn't known
   struct stat64 buf;
                 ^
Makefile:165: recipe for target '/mnt/clfs/sources/work/glibc-build/sunrpc/cross-rpc_main.o' failed
make[2]: *** [/mnt/clfs/sources/work/glibc-build/sunrpc/cross-rpc_main.o] Error 1
make[2]: Leaving directory '/mnt/clfs/sources/work/glibc-2.19/sunrpc'
Makefile:213: recipe for target 'sunrpc/others' failed
make[1]: *** [sunrpc/others] Error 2
make[1]: Leaving directory '/mnt/clfs/sources/work/glibc-2.19'
Makefile:9: recipe for target 'all' failed
make: *** [all] Error 2


please suggest any steps to correct this error


~nagu.
_______________________________________________
Clfs-support mailing list
Clfs-support <at> lists.cross-lfs.org
http://lists.cross-lfs.org/listinfo.cgi/clfs-support-cross-lfs.org
William Harrington | 31 May 04:42 2014

Package Freeze and Future Release plan

Greetings,

CLFS 3.0 is coming along well.

Chris and I feel a package freeze would be good, very soon.

Does anyone know of any upcoming releases that may be major that we  
would want to wait for?

I can't think of anything we'd want to wait for, at the moment.

We may want to do a release candidate for the 3.0.0 BOOK. This will  
provide valuable input and testing.

Do we still have followers? The lists haven't been busy in a while.

Sincerely,

William Harrington

Gmane