[Bug 590696] Re: [PR43847] fix wrong use of objdump during cross build

Bug Watch Updater 590696 at bugs.launchpad.net
Fri Apr 26 22:29:51 UTC 2013


Launchpad has imported 7 comments from the remote bug at
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43847.

If you reply to an imported comment from within Launchpad, your comment
will be sent to the remote bug automatically. Read more about
Launchpad's inter-bugtracker facilities at
https://help.launchpad.net/InterBugTracking.

------------------------------------------------------------------------
On 2010-04-22T09:00:16+00:00 Kai-ruottu wrote:

The code in 'gcc-4.5.0/gcc/configure' :

-------------------- clip -----------------------------------
pluginlibs=
if test x"$enable_plugin" = x"yes"; then

  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exported symbols" >&5
$as_echo_n "checking for exported symbols... " >&6; }
  echo "int main() {return 0;} int foobar() {return 0;}" > conftest.c
  ${CC} ${CFLAGS} ${LDFLAGS} conftest.c -o conftest > /dev/null 2>&1
  if $gcc_cv_objdump -T conftest | grep foobar > /dev/null; then
    : # No need to use a flag
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -rdynamic" >&5
$as_echo_n "checking for -rdynamic... " >&6; }
    ${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c -o conftest > /dev/null 2>&1
    if $gcc_cv_objdump -T conftest | grep foobar > /dev/null; then
      pluginlibs="-rdynamic"
    else
      enable_plugin=no
    fi
  fi
-------------------- clip -----------------------------------

will cause an error when the $target-objdump doesn't understand the $host
binaries like :

-------------------- clip -----------------------------------
Links are now set up to build a cross-compiler
from x86_64-unknown-linux-gnu to arm-unknown-elf.
checking for exported symbols...
/usr/local/cross-gcc-arm-elf-4.5.0/arm-elf/bin/objdump:
conftest: File format not recognized
checking for -rdynamic...
/usr/local/cross-gcc-arm-elf-4.5.0/arm-elf/bin/objdump:
conftest: File format not recognized
-------------------- clip -----------------------------------

The host GCC (CC) compiles and links a program and then the executable
will be looked with 'objdump' ($gcc_cv_objdump). But the latter is now
pointing to the target one!

Reply at:
https://bugs.launchpad.net/ubuntu/+source/gcc-4.5/+bug/590696/comments/0

------------------------------------------------------------------------
On 2010-04-22T16:54:18+00:00 Pinskia wrote:

Actually gcc_cv_objdump is correct for the rest of configure.ac; just we
are using the incorrect one for the plugin test.

Also note we need to use the one for built for the build for the host.
(for Canadian crosses).

Reply at:
https://bugs.launchpad.net/ubuntu/+source/gcc-4.5/+bug/590696/comments/1

------------------------------------------------------------------------
On 2010-06-04T09:51:42+00:00 Matthias Klose wrote:

having an objdump which supports both the host and the target works
around this issue.


Reply at: https://bugs.launchpad.net/ubuntu/+source/gcc-4.5/+bug/590696/comments/2

------------------------------------------------------------------------
On 2010-06-08T08:35:56+00:00 Matthias Klose wrote:

proposed patch at
http://gcc.gnu.org/ml/gcc-patches/2010-06/msg00658.html


Reply at: https://bugs.launchpad.net/ubuntu/+source/gcc-4.5/+bug/590696/comments/5

------------------------------------------------------------------------
On 2010-09-09T18:23:08+00:00 Doko-v wrote:

Subject: Bug 43847

Author: doko
Date: Thu Sep  9 18:22:48 2010
New Revision: 164113

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=164113
Log:
2010-09-09  Matthias Klose  <doko at ubuntu.com>

        PR bootstrap/43847
        * configure.ac (--enable-plugin): Enhance for cross builds.
        * configure: Regenerate.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/configure
    trunk/gcc/configure.ac


Reply at:
https://bugs.launchpad.net/ubuntu/+source/gcc-4.5/+bug/590696/comments/12

------------------------------------------------------------------------
On 2010-09-09T18:25:41+00:00 Doko-v wrote:

Subject: Bug 43847

Author: doko
Date: Thu Sep  9 18:25:26 2010
New Revision: 164114

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=164114
Log:
2010-09-09  Matthias Klose  <doko at ubuntu.com>

        PR bootstrap/43847
        * configure.ac (--enable-plugin): Enhance for cross builds.
        * configure: Regenerate.

Modified:
    branches/gcc-4_5-branch/gcc/ChangeLog
    branches/gcc-4_5-branch/gcc/configure
    branches/gcc-4_5-branch/gcc/configure.ac


Reply at:
https://bugs.launchpad.net/ubuntu/+source/gcc-4.5/+bug/590696/comments/13

------------------------------------------------------------------------
On 2013-04-26T07:51:34+00:00 Joern-clausen wrote:

The current code (GCC 4.7.3)

  *)
    if test x$build = x$host; then
      export_sym_check="objdump${exeext} -T"
    elif test x$host = x$target; then
      export_sym_check="$gcc_cv_objdump -T"
    else
      export_sym_check=
    fi

does not use OBJDUMP or similar hints for the correct name and location
of "objdump" when not doing a cross compile. On Solaris, I set

OBJDUMP=/usr/sfw/bin/gobjdump

which leads to

Links are now set up to build a native compiler for sparc-sun-solaris2.10.
checking for exported symbols... /software/local/gcc/src/gcc-4.7.3/gcc/configure: line 27313: objdump: command not found
yes
checking for -rdynamic... /software/local/gcc/src/gcc-4.7.3/gcc/configure: line 27323: objdump: command not found
no

Reply at:
https://bugs.launchpad.net/ubuntu/+source/gcc-4.5/+bug/590696/comments/15

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to gcc-4.5 in Ubuntu.
https://bugs.launchpad.net/bugs/590696

Title:
  [PR43847] fix wrong use of objdump during cross build

Status in The GNU Compiler Collection:
  Confirmed
Status in Linaro GCC:
  Fix Released
Status in Linaro GCC 4.4 series:
  Invalid
Status in Linaro GCC 4.5 series:
  Fix Released
Status in Linaro GCC Tracking:
  Fix Released
Status in “gcc-4.5” package in Ubuntu:
  Fix Released

Bug description:
  Binary package hint: gcc-4.5

  During cross building of gcc-4.5 there are some checks done to know
  does host gcc supports plugins.

  Problem is that tests are compiled with host CC but checked with
  target objdump. In result they fail so build ends before it even
  started.

  Attached patch fixes it.

  upstream bug: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43847

  Related: lp:gcc-linaro/4.5,revno=99382

To manage notifications about this bug go to:
https://bugs.launchpad.net/gcc/+bug/590696/+subscriptions




More information about the foundations-bugs mailing list