Closed Bug 264407 Opened 20 years ago Closed 20 years ago

nsZipArchive.o doesn't link

Categories

(SeaMonkey :: Build Config, defect)

x86
Linux
defect
Not set
major

Tracking

(Not tracked)

RESOLVED FIXED
mozilla1.8alpha5

People

(Reporter: BenB, Unassigned)

Details

(Keywords: regression)

Attachments

(4 files)

SuSE 9.1

../../../../dist/lib/libjar50_s.a(nsZipArchive.o)(.text+0x3f0): In function
`nsZipReadState::Init(nsZipItem*, _IO_FILE*)':
: undefined reference to `inflateInit2_'
../../../../dist/lib/libjar50_s.a(nsZipArchive.o)(.text+0x412): In function
`nsZipReadState::Init(nsZipItem*, _IO_FILE*)':
: undefined reference to `crc32'
../../../../dist/lib/libjar50_s.a(nsZipArchive.o)(.text+0x158e): In function
`nsZipArchiveStandalone::CopyItemToDisk(nsZipItem const*, _IO_FILE*, _IO_FILE*)':
: undefined reference to `crc32'
../../../../dist/lib/libjar50_s.a(nsZipArchive.o)(.text+0x162c): In function
`nsZipArchiveStandalone::CopyItemToDisk(nsZipItem const*, _IO_FILE*, _IO_FILE*)':
: undefined reference to `crc32'
../../../../dist/lib/libjar50_s.a(nsZipArchive.o)(.text+0x174a): In function
`nsZipArchiveStandalone::InflateItem(nsZipItem const*, _IO_FILE*, _IO_FILE*)':
: undefined reference to `inflateInit2_'
../../../../dist/lib/libjar50_s.a(nsZipArchive.o)(.text+0x17a6): In function
`nsZipArchiveStandalone::InflateItem(nsZipItem const*, _IO_FILE*, _IO_FILE*)':
: undefined reference to `crc32'
../../../../dist/lib/libjar50_s.a(nsZipArchive.o)(.text+0x18c8): In function
`nsZipArchiveStandalone::InflateItem(nsZipItem const*, _IO_FILE*, _IO_FILE*)':
: undefined reference to `inflate'
../../../../dist/lib/libjar50_s.a(nsZipArchive.o)(.text+0x18e9): In function
`nsZipArchiveStandalone::InflateItem(nsZipItem const*, _IO_FILE*, _IO_FILE*)':
: undefined reference to `crc32'
../../../../dist/lib/libjar50_s.a(nsZipArchive.o)(.text+0x19ab): In function
`nsZipArchiveStandalone::InflateItem(nsZipItem const*, _IO_FILE*, _IO_FILE*)':
: undefined reference to `inflateEnd'
../../../../dist/lib/libjar50_s.a(nsZipArchive.o)(.text+0x1ab3): In function
`nsZipArchiveStandalone::TestItem(nsZipItem const*, _IO_FILE*)':
: undefined reference to `inflateInit2_'
../../../../dist/lib/libjar50_s.a(nsZipArchive.o)(.text+0x1b0a): In function
`nsZipArchiveStandalone::TestItem(nsZipItem const*, _IO_FILE*)':
: undefined reference to `crc32'
../../../../dist/lib/libjar50_s.a(nsZipArchive.o)(.text+0x1d25): In function
`nsZipArchiveStandalone::TestItem(nsZipItem const*, _IO_FILE*)':
: undefined reference to `inflate'
../../../../dist/lib/libjar50_s.a(nsZipArchive.o)(.text+0x1d55): In function
`nsZipArchiveStandalone::TestItem(nsZipItem const*, _IO_FILE*)':
: undefined reference to `crc32'
../../../../dist/lib/libjar50_s.a(nsZipArchive.o)(.text+0x1d91): In function
`nsZipArchiveStandalone::TestItem(nsZipItem const*, _IO_FILE*)':
: undefined reference to `crc32'
../../../../dist/lib/libjar50_s.a(nsZipArchive.o)(.text+0x1e1c): In function
`nsZipArchiveStandalone::TestItem(nsZipItem const*, _IO_FILE*)':
: undefined reference to `inflateEnd'
collect2: ld returned 1 exit status
gmake[3]: *** [mozilla-installer-bin] Fehler 1
gmake[2]: *** [libs] Fehler 2
gmake[1]: *** [tier_50] Fehler 2
make: *** [default] Fehler 2
Keywords: regression
Ben, you need to attach the build log to this.  At a glance, it looks like a
static build where mozilla-installer-bin isn't being passed -lz to get the zlib
symbols.  However, ZLIB_LIBS is set in that makefile.  More information is needed.

Attached file .mozconfig
Sure. This is the .mozconfig I used for this build (it's intended to compile
fast). I'll attach the |make| output in a few mins.
Attached file make output
With "build log", you meant the |make output|, right?

I had to cut in the middle, because it was more than the 300K that bugzilla now
allows.
Yeah, I meant the make output.  It looks like the installer makefiles haven't
changed in ages and that the problem is that libjar50_s.a no longer has the
'standalone' zlib symbols included.  Can you do a 'make -C modules/libjar clean
all' and attach the output?
(stderr at the end, it ended up on the console despite 2>&1 )
Ok, the libjar build looks fine except that it didn't use the standalone zlib
headers to build.  Not sure why that would cause this problem though.

In modules/libjar/standalone/Makefile.in, try adding:
    -I$(DIST)/include/zlib
to LOCAL_INCLUDES and then rebuild libjar & xpinstall.

That worked, it seems

> it didn't use the standalone zlib headers to build.
> Not sure why that would cause this problem though.

Could it be that smart-ass logic which overrides my --with-system-zlib when the
configure script thinks that it has a newer zlib (with less security holes) in
the Mozilla tree than on my system?
> That worked, it seems

Yes, it did, I also did a depend make afterwards and it went through as well.
(In reply to comment #7)
> That worked, it seems
> 
> > it didn't use the standalone zlib headers to build.
> > Not sure why that would cause this problem though.
> 
> Could it be that smart-ass logic which overrides my --with-system-zlib when the
> configure script thinks that it has a newer zlib (with less security holes) in
> the Mozilla tree than on my system?

Yes & no.  The standalone libjar is supposed to always use the 'standalone'
version of zlib regardless of the --with-system-zlib setting.  The idea being
that the installer (the only thing that uses standalone jar) will have no
external dependencies. 

In this case though, it looks like you hit a symbol mismatch when using the
wrong headers.  Still not sure how that happened since the tree has zlib 1.2.1
and they're C symbols so they shouldn't have different signatures.
Just to make sure I understand it correctly:
- There is always a "standalone" version of libjar, i.e. one built from zlib
sources in the Mozilla tree and without external dependencies,  being built and
it is used *only* by the installer executable, not for opening jar: URLs in the
browser and not for installing XPIs in the browser either.
- The libjar used by the browser follows my configure flag (or not, because of
the bug described in comment 7)
- The bug here is that during building the standalone version, the system
headers were used.
- You change has no effect whatsoever on the libjar for the browser.

I just applied your patch (and unapplied the earlier change), rebuilt and it
works. Thanks!
Attachment #162144 - Flags: review+
That is correct.  The patch has been checked in.

Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla1.8alpha5
>Still not sure how that happened since the tree has zlib 1.2.1
>and they're C symbols so they shouldn't have different signatures.

functions in mozilla's zlib copy are renamed so as to not cause conflicts with
system zlibs. see
http://lxr.mozilla.org/seamonkey/source/modules/zlib/src/mozzconf.h#46
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: