OpenBSD Journal

Heads up! libc and libm changes require special attention

Contributed by weerd on from the whatever-floats-your-boat dept.

Martynas Venckus (martynas@) has committed a slew of updates to libc and libm. Martynas has been working on cleaning up libm, amongst his work he has been improving isnan and isinf support. These changes should bring OpenBSDs libc closer to C99 and were brought about by a need for these functions from new porting efforts. Following closely on his src/ commits he also updated some ports to remove patches working around these issues.

Because of this, users tracking current are advised to follow the instructions in current.html.

(Comments are closed)


Comments
  1. By art (81.229.83.195) on

    Actually, it's stronger than that. If you don't follow current.html, you will likely break your system.

  2. By Anonymous Coward (24.189.121.9) on

    Will these steps be needed if upgrading from 4.3 to 4.4 using the install CDs?

    Comments
    1. By tedu (207.99.73.226) on

      > Will these steps be needed if upgrading from 4.3 to 4.4 using the install CDs?

      no

    2. By Anonymous Coward (83.226.152.62) on

      > Will these steps be needed if upgrading from 4.3 to 4.4 using the install CDs?

      Of course not. It's only needed if you build the system yourself from source.

  3. By fredh (82.231.72.224) on

    Following the instructions in current.html I keep banging into the same error with /usr/src/gnu/lib/libiberty/src/getpwd.c

    While building libiberty it stops there :

    # make -f Makefile.bsd-wrapper
    ...
    cc -O2 -pipe -g -DHAVE_CONFIG_H -I/usr/src/gnu/lib/libiberty/src -I/usr/src/gnu/lib/libiberty/include -I/usr/src/gnu/lib/libiberty/obj -c /usr/src/gnu/lib/libiberty/src/getpwd.c -o getpwd.o
    cc:/usr/lib/libiberty.so.8.1: undefined symbol '__nan'
    /auss:r//ulsirb//lgicbc/-lliibbi/bie3r8t6y-.usnok.n8o.w1n:- oupnednebfsidn4e.d4 /s3y.m3b.o5l/ c'c_1_:n/auns'r
    /lib/libiberty.so.8.1: undefined symbol '__nan'
    /usr/src/gnu/lib/libiberty/src/getpwd.c: In function `getpwd':
    /usr/src/gnu/lib/libiberty/src/getpwd.c:75: error: storage size of `dotstat' isn't known
    /usr/src/gnu/lib/libiberty/src/getpwd.c:75: error: storage size of `pwdstat' isn't known
    /usr/src/gnu/lib/libiberty/src/getpwd.c:79: warning: assignment makes pointer from integer without a cast
    *** Error code 1

    Stop in /usr/src/gnu/lib/libiberty (line 92 of /usr/share/mk/sys.mk).

    Any thoughts on this ?

    Comments
    1. By Markus Hennecke (2001:6f8:927:0:219:dbff:fe60:e4a2) on

      > Following the instructions in current.html I keep banging into the same error with /usr/src/gnu/lib/libiberty/src/getpwd.c
      >
      > While building libiberty it stops there :
      >
      > # make -f Makefile.bsd-wrapper
      > ...
      > cc -O2 -pipe -g -DHAVE_CONFIG_H -I/usr/src/gnu/lib/libiberty/src -I/usr/src/gnu/lib/libiberty/include -I/usr/src/gnu/lib/libiberty/obj -c /usr/src/gnu/lib/libiberty/src/getpwd.c -o getpwd.o
      > cc:/usr/lib/libiberty.so.8.1: undefined symbol '__nan'
      > /auss:r//ulsirb//lgicbc/-lliibbi/bie3r8t6y-.usnok.n8o.w1n:- oupnednebfsidn4e.d4 /s3y.m3b.o5l/ c'c_1_:n/auns'r
      > /lib/libiberty.so.8.1: undefined symbol '__nan'
      > /usr/src/gnu/lib/libiberty/src/getpwd.c: In function `getpwd':
      > /usr/src/gnu/lib/libiberty/src/getpwd.c:75: error: storage size of `dotstat' isn't known
      > /usr/src/gnu/lib/libiberty/src/getpwd.c:75: error: storage size of `pwdstat' isn't known
      > /usr/src/gnu/lib/libiberty/src/getpwd.c:79: warning: assignment makes pointer from integer without a cast
      > *** Error code 1
      >
      > Stop in /usr/src/gnu/lib/libiberty (line 92 of /usr/share/mk/sys.mk).
      >
      > Any thoughts on this ?

      You have an already f**cked up system. BTDT. Right before the FAQ was changed I did the update...

      I ended with downloading a snapshot, uncompressing base44.tgz and comp44.tgz in / and rebuilding. For safety I followed the FAQ prior to the make build, didn't know if the snapshot was already with that changes. Hope that helpes.

      Kind regards
      Markus

      Comments
      1. By fredh (82.231.72.224) on

        > You have an already f**cked up system. BTDT. Right before the FAQ was changed I did the update...
        >
        > I ended with downloading a snapshot, uncompressing base44.tgz and comp44.tgz in / and rebuilding. For safety I followed the FAQ prior to the make build, didn't know if the snapshot was already with that changes. Hope that helpes.
        >
        > Kind regards
        > Markus

        Yep, what I feared. I too did a rebuild around the same time, and before it was mentionned in current.html.
        Thanks for confirming the issue.
        Fred

  4. By Anonymous Coward (89.27.59.185) on

    page says: Due to the changes in libc and libm, the following steps have to be taken before the rest of the system is built.

    Does "rest of the system" include kernel building? I assume it does not.

    Comments
    1. By Paul 'WEiRD' de Weerd (weerd) on http://www.weirdnet.nl/openbsd/

      > page says: Due to the changes in libc and libm, the following steps have to be taken before the rest of the system is built.
      >
      > Does "rest of the system" include kernel building? I assume it does not.

      The kernel does not use libc or libm, so you do not have to include the kernel in these steps.

      Comments
      1. By Anonymous Coward (2a01:348:108:100:20a:5eff:fe1a:a300) on

        > > page says: Due to the changes in libc and libm, the following steps have to be taken before the rest of the system is built.
        > >
        > > Does "rest of the system" include kernel building? I assume it does not.
        >
        > The kernel does not use libc or libm, so you do not have to include the kernel in these steps.

        You do need X and ports, though. But we're in the run-up to release. Please test the binaries. If you can test upgrading from a 4.3 system, including pkg_add -ui, even better.

        An i386 package snapshot following these changes is already available, amd64 is uploading now.

Credits

Copyright © - Daniel Hartmeier. All rights reserved. Articles and comments are copyright their respective authors, submission implies license to publish on this web site. Contents of the archive prior to as well as images and HTML templates were copied from the fabulous original deadly.org with Jose's and Jim's kind permission. This journal runs as CGI with httpd(8) on OpenBSD, the source code is BSD licensed. undeadly \Un*dead"ly\, a. Not subject to death; immortal. [Obs.]