pkgsrc-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
pkg/37941: More problems with libnbcompat brokenness (on IRIX?)
>Number: 37941
>Category: pkg
>Synopsis: More problems with libnbcompat brokenness (on IRIX?)
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sat Feb 02 16:45:01 +0000 2008
>Originator: Stuart Shelton
>Release: n/a - latest pkgsrc from CVS
>Organization:
>Environment:
IRIX64 fuel 6.5 07202013 IP35 ; MIPSpro Compilers: Version 7.4.4.m
>Description:
To check whether the ongoing problems with the "inplace" version of libnbcompat
just not working (and never having have worked since changed from the previous
"buildlink3" version) I decided to do a clean install of pkgsrc on a fresh
system.
When attempting to build pkgtools/mtree, I encountered the following error:
cc -DHAVE_CONFIG_H -I/usr/bsd/include -D__inline__=inline -I. -I. -c99 -O2 -n32
-mips4 -r14000 -float_const -use_readonly_const
-TARG:isa=mips4:platform=ip35:processor=r14000 -TENV:zeroinit_in_bss=ON
-OPT:fast_io=ON:Olimit=8192:reorg_common=ON:swp=ON
-LNO:auto_dist=ON:fusion_peeling_limit=8:gather_scatter=2 -woff
1174,1183,1185,1552,3970,3968 -n32 -c compare.c
cc-1101 cc: ERROR File = /usr/bsd/include/nbcompat/getopt.h, Line = 52
"option" has already been declared in the current scope.
struct option {
^
cc-1143 cc: ERROR File = /usr/bsd/include/nbcompat/getopt.h, Line = 67
Declaration is incompatible with "int getopt_long(int, char *const *, const
char *, const struct option *, int *)" (declared at line 70 of
"/usr/bsd/include/getopt.h").
int getopt_long (int, char * const *, const char *,
^
2 errors detected in the compilation of "compare.c".
gmake: *** [compare.o] Error 2
... so either mtree is trying to pull in getopt.h and nbcompat.h (which it
doesn't seem to be - there's only one mention of 'getopt' anywhere in the
source) or it's not been setup for use with nbcompat correctly (or there's a
problem with nbcompat).
Editing the nbcompat/getopt.h header so that it is only parsed if _GETOPT_H_
isn't defined allows the code to compile - but it fails to link:
cc
-Wl,-v,-s,-x,-n32,-mips4,-rdata_shared,-allow_jump_at_eop,-rpath,/usr/bsd/lib
-n32 -Wl,-rpath,/usr/bsd/lib -o mtree compare.o crc.o create.o excludes.o
misc.o mtree.o spec.o verify.o getid.o stat_flags.o pack_dev.o
ld32: Mapped === /usr/lib32/mips4/crt1.o ==== at address 0x4000000
ld32: 1: loading /usr/lib32/mips4/crt1.o.
ld32: Mapped === compare.o ==== at address 0x4004000
ld32: 2: loading compare.o.
ld32: Mapped === crc.o ==== at address 0x400c000
ld32: 3: loading crc.o.
ld32: Mapped === create.o ==== at address 0x4010000
ld32: 4: loading create.o.
ld32: Mapped === excludes.o ==== at address 0x4014000
ld32: 5: loading excludes.o.
ld32: Mapped === misc.o ==== at address 0x4018000
ld32: 6: loading misc.o.
ld32: Mapped === mtree.o ==== at address 0x401c000
ld32: 7: loading mtree.o.
ld32: Mapped === spec.o ==== at address 0x4020000
ld32: 8: loading spec.o.
ld32: Mapped === verify.o ==== at address 0x4028000
ld32: 9: loading verify.o.
ld32: Mapped === getid.o ==== at address 0x402c000
ld32: 10: loading getid.o.
ld32: Mapped === stat_flags.o ==== at address 0x4030000
ld32: 11: loading stat_flags.o.
ld32: Mapped === pack_dev.o ==== at address 0x4034000
ld32: 12: loading pack_dev.o.
ld32: Trying to open
/usr/bsd/var/tmp/pkgtools/mtree/work/.buildlink/lib/libc.so...
ld32: Trying to open
/usr/bsd/var/tmp/pkgtools/mtree/work/.buildlink/lib/libc.a...
ld32: Trying to open /usr/lib32/mips4/r10000/libc.so...
ld32: Trying to open /usr/lib32/mips4/r10000/libc.a...
ld32: Trying to open /usr/lib32/mips4/libc.so...
ld32: Mapped === /usr/lib32/mips4/libc.so ==== at address 0x4038000
ld32: Processing /usr/lib32/mips4/libc.so.
ld32: Mapped === /usr/lib32/mips4/crtn.o ==== at address 0x436c000
ld32: 13: loading /usr/lib32/mips4/crtn.o.
ld32: Laying out sections and assigning virtual addresses.
ld32: Fixing up symbol values.
ld32: Sorting symbol table.
ld32: Pass2: creating output file.
ld32: .interp.
ld32: .MIPS.options.
ld32: .reginfo.
ld32: .dynamic.
ld32: .liblist.
ld32: .dynstr.
ld32: .hash.
ld32: .dynsym.
ld32: .MIPS.symlib.
ld32: .msym.
ld32: .MIPS.stubs.
ld32: .text.
ld32: ERROR 33 : Unresolved text symbol "MD5File" -- 1st referenced by
compare.o.
ld32: ERROR 33 : Unresolved text symbol "RMD160File" -- 1st referenced by
compare.o.
ld32: ERROR 33 : Unresolved text symbol "SHA1File" -- 1st referenced by
compare.o.
ld32: ERROR 33 : Unresolved text symbol "lchmod" -- 1st referenced by
compare.o.
ld32: ERROR 33 : Unresolved text symbol "fts_open" -- 1st referenced by
create.o.
ld32: ERROR 33 : Unresolved text symbol "fts_read" -- 1st referenced by
create.o.
ld32: ERROR 33 : Unresolved text symbol "fts_set" -- 1st referenced by
create.o.
ld32: ERROR 33 : Unresolved text symbol "fts_close" -- 1st referenced by
create.o.
ld32: ERROR 33 : Unresolved text symbol "user_from_uid" -- 1st referenced by
create.o.
ld32: ERROR 33 : Unresolved text symbol "group_from_gid" -- 1st referenced by
create.o.
ld32: ERROR 33 : Unresolved text symbol "fts_children" -- 1st referenced by
create.o.
ld32: ERROR 33 : Unresolved text symbol "fparseln" -- 1st referenced by
excludes.o.
ld32: ERROR 33 : Unresolved text symbol "err" -- 1st referenced by excludes.o.
ld32: ERROR 33 : Unresolved text symbol "vwarnx" -- 1st referenced by misc.o.
ld32: ERROR 33 : Unresolved text symbol "warnx" -- 1st referenced by misc.o.
ld32: ERROR 33 : Unresolved text symbol "strsep" -- 1st referenced by misc.o.
ld32: ERROR 33 : Unresolved text symbol "setprogname" -- 1st referenced by
mtree.o.
ld32: ERROR 33 : Unresolved text symbol "getprogname" -- 1st referenced by
mtree.o.
ld32: ERROR 33 : Unresolved text symbol "strunvis" -- 1st referenced by
spec.o.
ld32: ERROR 33 : Unresolved text symbol "strsvis" -- 1st referenced by spec.o.
ld32: ERROR 33 : Unresolved text symbol "uid_from_user" -- 1st referenced by
spec.o.
ld32: ERROR 33 : Unresolved text symbol "gid_from_group" -- 1st referenced by
spec.o.
ld32: ERROR 33 : Unresolved text symbol "setmode" -- 1st referenced by spec.o.
ld32: ERROR 33 : Unresolved text symbol "getmode" -- 1st referenced by spec.o.
ld32: ERROR 33 : Unresolved text symbol "pwcache_groupdb" -- 1st referenced
by getid.o.
ld32: ERROR 33 : Unresolved text symbol "pwcache_userdb" -- 1st referenced by
getid.o.
ld32: .init.
ld32: .rodata.
ld32: .data.
ld32: .got.
ld32: .srdata.
ld32: .sbss.
ld32: .sdata.
ld32: .bss.
ld32: .debug_abbrev.
ld32: .debug_info.
ld32: .debug_frame.
ld32: .debug_aranges.
ld32: .comment.
ld32: .MIPS.interfaces.
ld32: .MIPS.events.text.
ld32: .MIPS.events.init.
ld32: .MIPS.content.rodata.
ld32: .MIPS.content.data.
ld32: .shstrtab.
ld32: Sorting dynamic relocation records.
ld32: INFO 152: Output file removed because of error.
*** Error code 2
Stop.
bmake: stopped in /usr/bsd/var/tmp/pkgtools/mtree/work/mtree-20070710
*** Error code 1
Stop.
bmake: stopped in /usr/bsd/src/pkgtools/mtree
*** Error code 1
Stop.
bmake: stopped in /usr/bsd/src/pkgtools/mtree
... unfortunately, despite having installed the libnbcompat package, there is
no libnbcompat.so on the system - only a libnbcompat.a.
Something seems very wrong here...
>How-To-Repeat:
Attempt to build *any* package requiring libnbcompat. On IRIX at least, it
just doesn't seem to work at all. It appears that all of libnbcompat is
unpacked into the top-level package's 'work' directory on each build - and some
sort of build (which is very time consuming) occurs, but all that seems to
result is a directory of code rather than built objects.
So much in pkgsrc relies on nbcompat (which is also used to provide getopt_long
on IRIX) that the usefulness on this platform is severely hampered until this
problem is fixed.
It's frustrating, because the old 'buildlink3' method did work - and since the
change every single package which relies on nbcompat is not buildable :(
>Fix:
Is there any documentation which describes, in detail, how the new 'inplace'
scheme should work? All I can imagine is that some huge chunk of it is
silently failing on IRIX.
This surprises me, because in most cases (especially at this low level), the
requirements for IRIX aren't often greatly different than those for Solaris -
does pkgsrc operate correctly on Sun?
Alternatively, has the new scheme actually been tested to work on IRIX, and it
is something that I've inadvertently done wrong each time?
Home |
Main Index |
Thread Index |
Old Index