On 5/10/19 5:25 PM, Niels Terp wrote:

Hey, I’m kind of new here. I build LFS several times a few years ago, but then got busy with other things.

Now I’m back, I’m following current stable lfs, and here is my first problem:

I have a script that builds the  temporary system. Since i want to install RPM, I continue with the deps of RPM, among wich is elfutils.

It is set up like chapter 6.48.1 with ./configure –prefix=/tools –program-prefix=”eu-”

When I run ”make” I get these errors:

  CC       dwarf_next_lines.os

  AR       libdw.a

  AR       libdw_pic.a

  CCLD     libdw.so

/mnt/lfs/tools/bin/../lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: /mnt/lfs/tools/bin/../lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../lib64/libbz2.a(bzlib.o): relocation R_X86_64_32S against symbol `BZ2_crc32Table' can not be used when making a shared object; recompile with -fPIC

/mnt/lfs/tools/bin/../lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: /mnt/lfs/tools/bin/../lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../lib64/libbz2.a(compress.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC

/mnt/lfs/tools/bin/../lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: /mnt/lfs/tools/bin/../lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../lib64/libbz2.a(decompress.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC

/mnt/lfs/tools/bin/../lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: /mnt/lfs/tools/bin/../lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../lib64/libbz2.a(blocksort.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC

/mnt/lfs/tools/bin/../lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: final link failed: nonrepresentable section on output

collect2: error: ld returned 1 exit status

make[3]: *** [Makefile:1372: libdw.so] Error 1

make[2]: *** [Makefile:614: all] Error 2

make[1]: *** [Makefile:485: all-recursive] Error 1

make: *** [Makefile:401: all] Error 2

The full log file is enclosed.

I see that I have to recompile with -fPIC – but how do I do that ?


Bzip2 is the problem child, here this is a snippet from my build scripts (tools.sh) and it will "correct" your problem

set -o errexit    # exit if error...insurance ;)
set -o nounset    # exit if variable not initalized
set +h        # disable hashall
#    Common variables
PRGNAME=${0##*/}        # script name minus the path
TOPDIR=${PWD}            # this directory
PARENT=/usr/src/LFS-RPM        # build system master directory
LOGFILE=$(date +%Y-%m-%d).log    # Not Used
MKFLAGS="-j 1"            # Number of cpu to use in building pkgs default = 1
#    environment from lfs user
LFS=/mnt/lfs            # where the build will be
LC_ALL=POSIX
LFS_TGT=${HOSTTYPE}-lfs-linux-gnu
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL LFS_TGT PATH

function msg {
    printf "%s\n" "${1}"
    return
}

function msg_line {
    printf "%s" "${1}"
    return
}

function msg_success {
    local _green="\\033[1;32m"
    local _normal="\\033[0;39m"
    printf "${_green}%s${_normal}\n" "SUCCESS"
    return
}

function clean_build-directory {
    msg_line "Cleaning BUILD directory: "
        rm -rf ${TOPDIR}/BUILD/*
        rm -rf ${TOPDIR}/BUILDROOT/*
    msg_success
    return
}

function Bzip {
    #    Bzip2-1.0.6
    local pkg=bzip2-1.0.6.tar.gz
    local pkg_dir=${pkg%%.tar*}
    local logfile="${TOPDIR}/LOGS/tools-${FUNCNAME}.log"
    local OPTFLAGS=" -march=x86-64 -mtune=generic -O2 -pipe -fPIC "
    [ -e ${logfile}.complete ] && { msg "Skipping: ${FUNCNAME}";return 0; } || msg "Building: ${FUNCNAME}"
    > ${logfile}
    pushd ${TOPDIR}/BUILD >> /dev/null 2>&1
        unpack "${pkg}"
        pushd ${pkg_dir} >> /dev/null 2>&1
            msg_line "    Configure: "
                sed -i "s|-O2|${OPTFLAGS}|g" Makefile
                sed -i "s|-O2|${OPTFLAGS}|g" Makefile-libbz2_so
            msg_success
            msg_line "         Make: "
                make ${MKFLAGS} >> ${logfile} 2>&1
            msg_success
            msg_line "      Install: "
                make PREFIX=/tools install >> ${logfile} 2>&1
            msg_success
        popd > /dev/null 2>&1
    popd > /dev/null 2>&1
    clean_build-directory
    mv ${logfile} ${logfile}.complete
    return
}
-- 
http://lists.linuxfromscratch.org/listinfo/lfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Do not top post on this list.

A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing in e-mail?

http://en.wikipedia.org/wiki/Posting_style

Reply via email to