pkgsrc-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
pkg/44450: devel/binutils from pkgsrc-2010Q4 has build/install problem on aix 5.3
>Number: 44450
>Category: pkg
>Synopsis: devel/binutils from pkgsrc-2010Q4 has build/install problem on
>aix 5.3
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Jan 24 08:30:01 +0000 2011
>Originator: J Raynor
>Release: aix 5.3
>Organization:
>Environment:
AIX testsys 3 5
>Description:
devel/binutils from pkgsrc-2010Q4 fails to build on aix 5.3 with gcc 4.4.4.
Once I get it to build, there are install errors.
The build errors are all of the same "missing sentinel" type. Here's an
example:
gcc -DHAVE_CONFIG_H -I. -I.././binutils -I. -D_GNU_SOURCE -I. -I.././binutils
-I../bfd -I.././binutils/../bfd -I.././binutils/../include
-I.././binutils/../intl -I../intl -DLOCALEDIR="\"/jxr/share/locale\""
-Dbin_dummy_emulation=bin_aix5_emulation -I/jxr/gcc44/include
-I/jxr/gcc44/lib/gcc/powerpc-ibm-aix5.3.0.0/4.4.4/include -I/usr/include
-I/jxr/include -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror -O
-I/jxr/gcc44/include -I/jxr/gcc44/lib/gcc/powerpc-ibm-aix5.3.0.0/4.4.4/include
-I/usr/include -I/jxr/include -c -DAIX_WEAK_SUPPORT .././binutils/objdump.c
cc1: warnings being treated as errors
.././binutils/objdump.c: In function 'main':
.././binutils/objdump.c:2990: error: missing sentinel in function call
*** Error code 1
Stop.
bmake: stopped in /jxr/pkgsrc/devel/binutils/work/binutils-2.17/binutils
*** Error code 1
Once I fix the build errors, I get the following errors when I install:
=> Running POST-INSTALL script actions
pkg_create: can't stat `/jxr/bin/gnu-gprof'
pkg_create: can't stat `/jxr/info/gprof.info'
pkg_create: can't stat `/jxr/man/man1/gnu-gprof.1'
pkg_create: can't stat `/jxr/share/locale/da/LC_MESSAGES/gprof.mo'
pkg_create: can't stat `/jxr/share/locale/de/LC_MESSAGES/gprof.mo'
pkg_create: can't stat `/jxr/share/locale/es/LC_MESSAGES/gprof.mo'
pkg_create: can't stat `/jxr/share/locale/fr/LC_MESSAGES/gprof.mo'
pkg_create: can't stat `/jxr/share/locale/ga/LC_MESSAGES/gprof.mo'
pkg_create: can't stat `/jxr/share/locale/id/LC_MESSAGES/gprof.mo'
pkg_create: can't stat `/jxr/share/locale/pt_BR/LC_MESSAGES/gprof.mo'
pkg_create: can't stat `/jxr/share/locale/rw/LC_MESSAGES/gprof.mo'
pkg_create: can't stat `/jxr/share/locale/sv/LC_MESSAGES/gprof.mo'
pkg_create: can't stat `/jxr/share/locale/tr/LC_MESSAGES/gprof.mo'
pkg_create: can't stat `/jxr/share/locale/vi/LC_MESSAGES/gprof.mo'
=> Registering installation for binutils-2.17nb1
pkg_admin: binutils-2.17nb1: File `/jxr/bin/gnu-gprof' is in +CONTENTS but not
on filesystem!
pkg_admin: binutils-2.17nb1: File `/jxr/info/gprof.info' is in +CONTENTS but
not on filesystem!
pkg_admin: binutils-2.17nb1: File `/jxr/man/man1/gnu-gprof.1' is in +CONTENTS
but not on filesystem!
pkg_admin: binutils-2.17nb1: File `/jxr/share/locale/da/LC_MESSAGES/gprof.mo'
is in +CONTENTS but not on filesystem!
pkg_admin: binutils-2.17nb1: File `/jxr/share/locale/de/LC_MESSAGES/gprof.mo'
is in +CONTENTS but not on filesystem!
pkg_admin: binutils-2.17nb1: File `/jxr/share/locale/es/LC_MESSAGES/gprof.mo'
is in +CONTENTS but not on filesystem!
pkg_admin: binutils-2.17nb1: File `/jxr/share/locale/fr/LC_MESSAGES/gprof.mo'
is in +CONTENTS but not on filesystem!
pkg_admin: binutils-2.17nb1: File `/jxr/share/locale/ga/LC_MESSAGES/gprof.mo'
is in +CONTENTS but not on filesystem!
pkg_admin: binutils-2.17nb1: File `/jxr/share/locale/id/LC_MESSAGES/gprof.mo'
is in +CONTENTS but not on filesystem!
pkg_admin: binutils-2.17nb1: File
`/jxr/share/locale/pt_BR/LC_MESSAGES/gprof.mo' is in +CONTENTS but not on
filesystem!
pkg_admin: binutils-2.17nb1: File `/jxr/share/locale/rw/LC_MESSAGES/gprof.mo'
is in +CONTENTS but not on filesystem!
pkg_admin: binutils-2.17nb1: File `/jxr/share/locale/sv/LC_MESSAGES/gprof.mo'
is in +CONTENTS but not on filesystem!
pkg_admin: binutils-2.17nb1: File `/jxr/share/locale/tr/LC_MESSAGES/gprof.mo'
is in +CONTENTS but not on filesystem!
pkg_admin: binutils-2.17nb1: File `/jxr/share/locale/vi/LC_MESSAGES/gprof.mo'
is in +CONTENTS but not on filesystem!
binutils-2.17nb1 requires installed package pkg_install-info-4.5nb3
>How-To-Repeat:
Build devel/binutils from pkgsrc-2010Q4 with gcc 4.4.4 on aix 5.3.
>Fix:
The "missing sentinal" error occurs in calls to concat that are terminated with
NULL. Here's an example:
p->local_sym_name = concat ("-l", name, NULL);
This might only be a problem with newer versions of gcc. At any rate, the
source files end concat calls in different ways besides just NULL, and one
other way is with "(const char * ) 0". Below are patches that change the
problem concat calls. Newer versions of binutils have already eliminated NULL
terminated concat calls, so there's no need for me to send patches upstream.
Also, gas/read.c already had a patched applied to it in patch-af. My patch
incorporates that patch.
--- binutils/objdump.c.orig 2011-01-24 01:24:35.000000000 -0600
+++ binutils/objdump.c 2011-01-24 01:25:14.000000000 -0600
@@ -2987,7 +2987,7 @@
if (disassembler_options)
/* Ignore potential memory leak for now. */
disassembler_options = concat (disassembler_options, ",",
- optarg, NULL);
+ optarg, (const char *) 0);
else
disassembler_options = optarg;
break;
--- gas/read.c.orig 2005-11-17 01:29:28.000000000 -0600
+++ gas/read.c 2011-01-24 01:29:59.000000000 -0600
@@ -1423,7 +1423,7 @@
offsetT temp, size;
symbolS *symbolP = NULL;
char *stop = NULL;
- char stopc;
+ char stopc = '\0'; /* XXX: gcc -Wuninitialized */
expressionS exp;
if (flag_mri)
@@ -3251,14 +3251,14 @@
char *loop;
loop = concat (S_GET_NAME (symbolP),
- " => ", S_GET_NAME (symbolP2), NULL);
+ " => ", S_GET_NAME (symbolP2), (const char * ) 0);
symp = symbolP2;
while (symp != symbolP)
{
char *old_loop = loop;
symp = symbol_get_value_expression (symp)->X_add_symbol;
- loop = concat (loop, " => ", S_GET_NAME (symp), NULL);
+ loop = concat (loop, " => ", S_GET_NAME (symp), (const char * )
0);
free (old_loop);
}
--- ld/ldfile.c.orig 2011-01-24 01:37:38.000000000 -0600
+++ ld/ldfile.c 2011-01-24 01:38:37.000000000 -0600
@@ -115,7 +115,7 @@
now. */
if (name[0] == '=')
{
- new->name = concat (ld_sysroot, name + 1, NULL);
+ new->name = concat (ld_sysroot, name + 1, (const char * ) 0);
new->sysrooted = TRUE;
}
else
--- ld/ldlang.c.orig 2011-01-24 01:34:41.000000000 -0600
+++ ld/ldlang.c 2011-01-24 01:36:58.000000000 -0600
@@ -813,7 +813,7 @@
p->is_archive = TRUE;
p->filename = name;
p->real = TRUE;
- p->local_sym_name = concat ("-l", name, NULL);
+ p->local_sym_name = concat ("-l", name, (const char * ) 0);
p->just_syms_flag = FALSE;
p->search_dirs_flag = TRUE;
break;
As for the install problem, I see this in the configure output:
checking for correct version of gmp.h... no
*** This configuration is not supported in the following subdirectories:
gprof
(Any other directories should still work fine.)
Since gprof doesn't get built, I get the install errors listed above. I don't
know if the problem with gmp.h is just on my system, or if this is a problem on
aix. If the problem is on aix and the installation process shouldn't try to
install the gprof files, then the following patch to Makefile will prevent the
install errors:
--- Makefile.orig 2011-01-24 01:05:14.000000000 -0600
+++ Makefile 2011-01-24 01:07:32.000000000 -0600
@@ -39,7 +39,7 @@
#
PLIST_VARS+= gprof
.include "../../mk/bsd.prefs.mk"
-.if ${OPSYS} != "IRIX"
+.if ${OPSYS} != "IRIX" && ${OPSYS} != "AIX"
PLIST.gprof= yes
.endif
Home |
Main Index |
Thread Index |
Old Index