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