Ticket #20 (closed Enhancement: fixed)

Opened 1 year ago

Last modified 3 weeks ago

Bump minimum glibc version to 2.3.3

Reported by: isak Assigned to: mike
Priority: Medium Milestone: 1.3
Component: apbuild Version: 1.2.2
Severity: Normal Keywords: glibc, apbuild
Cc:

Description (Last modified by Jan-Nik)

In a thread on the mailing list ( http://article.gmane.org/gmane.comp.autopackage.devel/6186 ) it was discussed that we should bump the minimum GLIBC version requirement to 2.3 from the previous 2.2. The background is that 2.3 is now mainstream and few (none?) of our target users are on 2.2 systems these days.

Attachments

glibc-2.3.3.diff (28.2 kB) - added by taj on 12/29/07 23:25:01.
rebuilt filtering greater than 2.3.3
glibc-2.3.diff (37.2 kB) - added by Jan-Nik on 08/22/08 15:20:46.
New patch, which uses 2.3 and therefore isn't affected by the comparision bug descriped by Isak
glibc-2.3-try2.diff (37.2 kB) - added by isak on 08/23/08 06:22:25.
New patch: Remove dups from apsymbols.h, add ChangeLog entry

Change History

05/22/07 18:38:44 changed by taj

Any complaints about doing this? The changes involve:

Any others?

12/29/07 23:25:01 changed by taj

  • attachment glibc-2.3.3.diff added.

rebuilt filtering greater than 2.3.3

12/29/07 23:31:30 changed by taj

  • summary changed from Bump minimum glibc version to 2.3 to Bump minimum glibc version to 2.3.3.

The attachment glibc-2.3.3.diff contains a new buildlist script that should filter all symbols above glibc 2.3.3. Unfortunately, I don't know if I changed everything correctly as some of the comments were a little unclear to me. If someone else could take a look at the changes (and the resulting apsymbols.h, also in the patch), and confirm that it looks correct, that would be great.

FYI, the GlibcVersionsOfDifferentLinuxDistributions page shows what versions of glibc shipped with different versions of distros.

08/04/08 17:20:32 changed by Jan-Nik

This patch does also make this one obvious. Would be cool if it could be committed before 1.3, but unfortunately I don't understand a single line, so I can't confirm that everything is correct.

08/21/08 17:11:59 changed by isak

Regarding the patch.. the following awk code will not do what we want it to do:

awk ' { if ($2 > 2.3.3) ...

If quoted (to force string comparison) it will work better, but it'll break for version numbers larger than 9 (e.g. "1.2.10", "1.10.0", "10.12.13" etc)

08/22/08 15:20:46 changed by Jan-Nik

  • attachment glibc-2.3.diff added.

New patch, which uses 2.3 and therefore isn't affected by the comparision bug descriped by Isak

08/22/08 17:20:33 changed by Jan-Nik

Unfortunately the apsymbols.h of my patch doesn't work, I can't compile anything.

08/23/08 06:22:25 changed by isak

  • attachment glibc-2.3-try2.diff added.

New patch: Remove dups from apsymbols.h, add ChangeLog entry

08/23/08 06:23:14 changed by isak

jhasse: try the new patch. There were dups in the symbol file. I just removed them but I'm not sure why they were there in the first place...

08/23/08 06:30:09 changed by Jan-Nik

New patch works fine! Can we commit it?

09/11/08 08:58:50 changed by Jan-Nik

  • status changed from new to closed.
  • resolution set to fixed.
  • description changed.

I've just committed it in r2505.

(follow-up: ↓ 10 ) 09/13/08 07:47:40 changed by Jan-Nik

  • status changed from closed to reopened.
  • resolution deleted.

Blimey! I'm getting this error in Ubuntu 8.04.1 32 Bit when compiling autopackage:

apgcc -std=gnu99 -Wall -Wfloat-equal -Wmissing-noreturn -O2 -march=i586 -pipe -export-dynamic  
-o mkapspec mkapspec-apspec.o mkapspec-main.o mkapspec-utils.o mkapspec-binreloc.o mkapspec-
mainwin.o mkapspec-mainwin_cb.o mkapspec-dialogs_cb.o mkapspec-dialogs.o -lglade-2.0 -lgtk-
x11-2.0 -lxml2 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo 
-lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0    
mkapspec-binreloc.o: In function `gbr_init_lib':
binreloc.c:(.text+0x5e0): undefined reference to `__isoc99_sscanf@GLIBC_DONT_USE_THIS_SYMBOL'
binreloc.c:(.text+0x623): undefined reference to `__isoc99_sscanf@GLIBC_DONT_USE_THIS_SYMBOL'
/usr/bin/ld: mkapspec: No symbol version section for versioned symbol 
`__isoc99_sscanf@GLIBC_DONT_USE_THIS_SYMBOL'
/usr/bin/ld: final link failed: Nonrepresentable section on output

(in reply to: ↑ 9 ) 09/16/08 14:54:04 changed by isak

Replying to Jan-Nik:

Blimey! I'm getting this error in Ubuntu 8.04.1 32 Bit when compiling autopackage: {{{ binreloc.c:(.text+0x5e0): undefined reference to `isoc99_sscanf@GLIBC_DONT_USE_THIS_SYMBOL' }}}

Fixed in r2509 for mkapspec. But the bigger problem is still there:

in glibc 2.7, this new symbol isoc99_sscanf and a few friends was added as a compile time drop-in replacement for the normal sscanf. So any program compiled on a glibc > 2.7 system which uses any of the scanf functions and is compiling with the --std=c99 gcc option will be hit by this :-(

The bad thing is: binreloc.c is calling sscanf in one of its functions (this is what I removed from mkapspec) so basically all autopackaged software will be hit by this one. We could fix binreloc by replacing the sscanf usage with strtoul(start, end, 16); which should have the same effect but it has some 32 vs 64 bit issues we need to handle first.

09/16/08 15:08:40 changed by Jan-Nik

  • status changed from reopened to closed.
  • resolution set to fixed.

Okay, I've created a new ticket for the C99 problem (#100) and close this one as fixed.