TOOLCHAIN is unable to link executables

223 views
Skip to first unread message

Leonard Pimentel

unread,
Jan 26, 2015, 4:59:50 PM1/26/15
to apps-...@webmproject.org

Webm Support:

 

I receive an error: Toolchain is unable to link executables during the build process.  I am not sure if the issue can be resolved with LDFLAGS assignment or if there is another reason for the error.  Can you assist?

 

The toolchain is CodeSourcery’s G++ Lite for the arm-none-linux-gnueabi.   The arm processor is the TIDM3730 but the toolchain is supporting armv5te.

 

The build produced the same error even without the CFLAGS and LDFLAGS.

 

Using LTIB

 

CFLAGS="-I%Codetoolchain/lib/gcc/arm-none-linux-gnueabi/4.3.3/include" \

LDFLAGS="-L%Codetoolchain/lib/ -L%LOGICPD_DIR/rpm/BUILD/libvpx-v1.3.0/vpx" \

CROSS=arm-none-linux-gnueabi- ./configure --prefix=%{_prefix} --target=generic-gnu \

--log=yes \

--disable-install-docs --enable-vp8 --enable-shared \

--disable-edsp  --disable-unit_tests  --disable-multithread --disable-mmx --disable-sse \

--disable-sse2 --disable-sse3 --disable-ssse3 --enable-postproc --enable-realtime-only

 

CONFIG.LOG (v1.3.0)

 

check_ld

check_cc

BEGIN /tmp/vpx-conf-15247-13973.c

    1          int main(void) {return 0;}

END /tmp/vpx-conf-15247-13973.c

gcc -O3 -fPIC -Wall -Wdeclaration-after-statement -Wdisabled-optimization -Wpointer-arith -Wtype-limits -Wcast-qual -Wvla -Wimplicit-function-declaration -Wuninitialized -Wunused-variable -Wno-unused-function -c -o /tmp/vpx-conf-15247-13973.o /tmp/vpx-conf-15247-13973.c

ld -L/opt/CodeSourcery/Sourcery_G++_Lite/lib/ -L/home/leo/logic/Logic_BSPs/Linux_3.0/1026167_LogicPD_Linux_BSP_2.4-3/rpm/BUILD/libvpx-v1.3.0/vpx -o /tmp/vpx-conf-15247-13973.x /tmp/vpx-conf-15247-13973.o

/opt/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-ld: warning: cannot find entry symbol _start; defaulting to 00008094

/tmp/vpx-conf-15247-13973.o:(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0'

 

 

Leonard Pimentel

CEO & CTO

Lotus Research, LLC.

Cell: (917) 834-7533

logo_linkedin_92x22

 

libvpx.spec
config.log

James Zern

unread,
Jan 26, 2015, 6:30:35 PM1/26/15
to Application Developers
Hi,

On Mon, Jan 26, 2015 at 12:05 PM, Leonard Pimentel <l...@lotus-research.com> wrote:

Webm Support:

 

I receive an error: Toolchain is unable to link executables during the build process.  I am not sure if the issue can be resolved with LDFLAGS assignment or if there is another reason for the error.  Can you assist?

 

The toolchain is CodeSourcery’s G++ Lite for the arm-none-linux-gnueabi.   The arm processor is the TIDM3730 but the toolchain is supporting armv5te.

 


From the include path this looks a bit dated, though not likely the main issue. The configure test is compiling the simple main() listed, are you able to compile any executable targets with this toolchain? Guessing based on the name, maybe -fno-unwind-tables might help here.
For what it's worth we do build an armv6 version (and earlier had done armv5) using newer versions of the lite toolchain (2011.9 / 2013.11) [1].

 

The build produced the same error even without the CFLAGS and LDFLAGS.

 

Using LTIB

 

CFLAGS="-I%Codetoolchain/lib/gcc/arm-none-linux-gnueabi/4.3.3/include" \

LDFLAGS="-L%Codetoolchain/lib/ -L%LOGICPD_DIR/rpm/BUILD/libvpx-v1.3.0/vpx" \

CROSS=arm-none-linux-gnueabi- ./configure --prefix=%{_prefix} --target=generic-gnu \

--log=yes \

--disable-install-docs --enable-vp8 --enable-shared \

--disable-edsp  --disable-unit_tests  --disable-multithread --disable-mmx --disable-sse \

--disable-sse2 --disable-sse3 --disable-ssse3 --enable-postproc --enable-realtime-only

 

CONFIG.LOG (v1.3.0)

 

check_ld

check_cc

BEGIN /tmp/vpx-conf-15247-13973.c

    1          int main(void) {return 0;}

END /tmp/vpx-conf-15247-13973.c

gcc -O3 -fPIC -Wall -Wdeclaration-after-statement -Wdisabled-optimization -Wpointer-arith -Wtype-limits -Wcast-qual -Wvla -Wimplicit-function-declaration -Wuninitialized -Wunused-variable -Wno-unused-function -c -o /tmp/vpx-conf-15247-13973.o /tmp/vpx-conf-15247-13973.c

ld -L/opt/CodeSourcery/Sourcery_G++_Lite/lib/ -L/home/leo/logic/Logic_BSPs/Linux_3.0/1026167_LogicPD_Linux_BSP_2.4-3/rpm/BUILD/libvpx-v1.3.0/vpx -o /tmp/vpx-conf-15247-13973.x /tmp/vpx-conf-15247-13973.o

/opt/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-ld: warning: cannot find entry symbol _start; defaulting to 00008094

/tmp/vpx-conf-15247-13973.o:(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0'

 

 

Leonard Pimentel

CEO & CTO

Lotus Research, LLC.

Cell: (917) 834-7533

logo_linkedin_92x22

 

--
You received this message because you are subscribed to the Google Groups "Application Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to apps-devel+...@webmproject.org.
To post to this group, send email to apps-...@webmproject.org.
Visit this group at http://groups.google.com/a/webmproject.org/group/apps-devel/.
For more options, visit https://groups.google.com/a/webmproject.org/d/optout.

pi...@wharton.upenn.edu

unread,
Jan 28, 2015, 3:52:09 PM1/28/15
to apps-...@webmproject.org
James,

Thank you for the response.  I will review your link and reply afterwards.

pi...@wharton.upenn.edu

unread,
Jan 28, 2015, 7:10:26 PM1/28/15
to apps-...@webmproject.org, pi...@wharton.upenn.edu
James,

I reviewed your question and the link.  Yes, I have successfully built 142 packages using this toolchain and LTIB commands.  Any suggestions on verifying the toolchain, environments variables etc, for a successful lipvpx build?  Once again, the error points to the linker.

Thank you,

James Zern

unread,
Jan 28, 2015, 7:31:00 PM1/28/15
to Application Developers, pi...@wharton.upenn.edu
On Wed, Jan 28, 2015 at 4:10 PM, <pi...@wharton.upenn.edu> wrote:
James,

I reviewed your question and the link.  Yes, I have successfully built 142 packages using this toolchain and LTIB commands.  Any suggestions on verifying the toolchain, environments variables etc, for a successful lipvpx build?  Once again, the error points to the linker.

The command line and source are in the config output. I'd suggest extracting that and running the compiler directly. Looking at it again though it seems CROSS may not have taken in this case given an unadorned gcc is being used. You could try setting LD, using an armv5 target (in v1.3.0) or use an armv6 target and add --disable-media if you're building from the tip of the tree.

Leonard Pimentel

unread,
Jan 28, 2015, 8:03:12 PM1/28/15
to apps-...@webmproject.org, pi...@wharton.upenn.edu

James,

 

-          Set LD to which folder location???

-          CodeSourcery is set as the TOOLCHAIN_PREFIX with the directory set as the TOOLCHAIN_PATH

-          CROSS variable is not set as an environment variable.  Not sure if this affect the build process since LTIB was able to build most the TI packages that were packaged using autotools.

 

--- From the readme file.

  The generic-gnu target, in conjunction with the CROSS environment variable,
  can be used to cross compile architectures that aren't explicitly listed, if
  the toolchain is a cross GNU (gcc/binutils) toolchain. Other POSIX toolchains
  will likely work as well. For instance, to build using the mipsel-linux-uclibc
  toolchain, the following command could be used (note, POSIX SH syntax, adapt
  to your shell as necessary):

    $ CROSS=mipsel-linux-uclibc- ../libvpx/configure

 

-          The README states the $CROSS variable is a prefix to the $CC variable, which is set to gcc. 

-          Running the build using –target=armv5te-linux-gcc produced the same error at the linking stage.

-          Complier is building the temp files in the local /tmp  directory and not the LTIB tmp directory.

 

--
You received this message because you are subscribed to a topic in the Google Groups "Application Developers" group.
To unsubscribe from this topic, visit https://groups.google.com/a/webmproject.org/d/topic/apps-devel/k0foESbVEtQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to apps-devel+...@webmproject.org.

James Zern

unread,
Jan 28, 2015, 8:11:08 PM1/28/15
to Application Developers, pi...@wharton.upenn.edu
On Wed, Jan 28, 2015 at 5:03 PM, Leonard Pimentel <l...@lotus-research.com> wrote:

James,

 

-          Set LD to which folder location???


OK, sorry I was looking at:

gcc -O3 -fPIC ...

ld -L/opt/CodeSourcery/Sourcery_G++_Lite/lib/ ...


and was thinking native gcc was being used. LD is the linker to use similar to CC. Your best bet would then be to take that failing command line and run it directly with a trivial main and work through which flags might be missing. The configure script is trying to do a compile (-c -o) followed by a link of that object file. If you're sure the tools listed there are correct given your path, then it's likely a compiler or linker flag is missing.

 
Reply all
Reply to author
Forward
0 new messages