[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#35023: marked as forwarded (libc6: C++ incompatibility bug)



Your message dated Thu, 25 Mar 1999 06:49:48 -0800
with message-id <v04104812b31ff786585e@[206.163.71.146]>
and subject line Fwd: Bug#35023: libc6: C++ incompatibility bug
has caused the Debian bug report #35023,
regarding libc6: C++ incompatibility bug
to be marked as having been forwarded to the upstream software
author(s) libc-alpha@cygnus.com.

(NB: If you are a system administrator and have no idea what I'm
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Ian Jackson
(administrator, Debian bugs database)

Received: (at submit) by bugs.debian.org; 25 Mar 1999 00:47:57 +0000
Received: (qmail 27330 invoked from network); 25 Mar 1999 00:47:56 -0000
Received: from c12465-001.powersurfr.com (HELO Wakko.deltatee.com) (mail@24.108.38.177)
  by master.debian.org with SMTP; 25 Mar 1999 00:47:56 -0000
Received: from jgg by Wakko.deltatee.com with local (Exim 2.05 #1)
	id 10PyJO-0000LS-00 (Debian); Wed, 24 Mar 1999 17:47:54 -0700
From: Jason Gunthorpe <jgg@gpu.srv.ualberta.ca>
Subject: libc6: C++ incompatibility bug
To: submit@bugs.debian.org
X-Mailer: bug 3.1.7
Message-Id: <[🔎] E10PyJO-0000LS-00@Wakko.deltatee.com>
Sender: "Jason Gunthorpe,,," <jgg@wakko.deltatee.com>
Date: Wed, 24 Mar 1999 17:47:54 -0700

Package: libc6
Version: 2.1.1-0.1

I have created a test case derived from the code in APT that when runs on
glibc 2.1 without recompilation fails. The test case is very simple:

#include <iostream>
#include <fstream>

void die(const char *S)
{
   cerr << S << endl;
   exit(1);
}

int main(int argc,const char *argv[])
{
   ifstream F(argv[1],ios::in | ios::nocreate);

   if (!F != 0)
      die("!F #1");
   
   streampos Off = F.tellg();
   if (!F != 0)
      die("!F #2");
   
   return 0;
}

Results on glibc2.1 using 2.0 compiled binary..

[..]

open("/var/state/apt/lists/mirror_debian_dists_potato_main_binary-i386_Packages",O_RDONLY)=3
fstat(3, {st_mode=0, st_size=0, ...})   = 0
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x40014000
_llseek(3, 4294967296, 0xbffffb10, 0x4016521c /* SEEK_??? */) = -1 EINVAL
(Invalid argument)
write(2, "!F #2", 5!F #2)                    = 5
write(2, "\n", 1
)                       = 1
_exit(1)                                = ?


Results on glibc2.1 using a 2.1 compiled binary..

[..]

open("/var/state/apt/lists/mirror_debian_dists_potato_main_binary-i386_Packages",O_RDONLY|0x8000)=3
fstat(3, {st_mode=0, st_size=0, ...})   = 0
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x40014000
_llseek(3, 0, {0}, SEEK_CUR)            = 0
close(3)                                = 0
munmap(0x40014000, 4096)                = 0
_exit(0)                                = ?

The key difference appears to be in how llseek is called. I belive that if
this is fixed APT 0.1.10 will run without recompilation on glibc2.1.

This bug may be related to #34953 

Jason


Reply to: