[ icewm-Bugs-993222 ] missing header file (libgen.h)
Brought to you by:
captnmark
From: SourceForge.net <no...@so...> - 2004-07-23 15:24:29
|
Bugs item #993222, was opened at 2004-07-18 10:35 Message generated for change (Comment added) made by gicco You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100031&aid=993222&group_id=31 Category: verify-fixed Group: None Status: Open Resolution: Duplicate Priority: 5 Submitted By: Robert Klein (roklein) Assigned to: Marko Macek (captnmark) Summary: missing header file (libgen.h) Initial Comment: In current CVS: Several files don't include the header libgen.h though they need it for the function basename() (see basename(3)). Those files are: wmapp.cc aworkspaces.cc icesh.cc icewmbg.cc icesound.cc This is a serious compile issue, at least on FreeBSD using "g++ (GCC) 3.3.3 [FreeBSD] 20031106". (compile stops with error.) The solution is to put a line #include <libgen.h> in the include section of those five files. ---------------------------------------------------------------------- Comment By: Hanspeter Roth (gicco) Date: 2004-07-23 15:24 Message: Logged In: YES user_id=552894 Please note that as of 992522 I had tested on FreeBSD 4.8 using gcc 2.95. 4 with a version of icewm from CVS between .15pre1 and .15pre2. I have now also tested on FreeBSD 5.2.1 using gcc 3.3.3 with a version after .15pre2. Here the files mentioned below also require to include libgen.h. ---------------------------------------------------------------------- Comment By: Robert Klein (roklein) Date: 2004-07-23 05:25 Message: Logged In: YES user_id=96873 No, it is not fixed. It is _not_ a duplicate of 992522. It's just that the solution for 992522 works _if_ and _only_if_ you apply it to four other files, too. Those files are: wmapp.cc icesh.cc icewmbg.cc icesound.cc. ---------------------------------------------------------------------- Comment By: Marko Macek (captnmark) Date: 2004-07-22 18:56 Message: Logged In: YES user_id=1814 please test with latest CVS ---------------------------------------------------------------------- Comment By: Thomas Zajic (zlatk0) Date: 2004-07-19 18:36 Message: Logged In: YES user_id=150806 Well, for me this did happen in 15pre2. I can't remember if the problem was also present in 15pre1, unfortunately. ---------------------------------------------------------------------- Comment By: Robert Klein (roklein) Date: 2004-07-19 17:51 Message: Logged In: YES user_id=96873 I have a CVS from a couple of minutes before. same problem. errors are: wmapp.cc:637: warning: called from here wmapp.cc:965:2: warning: #warning calling /bin/sh is considered to be bloat wmapp.cc: In function `int main(int, char**)': wmapp.cc:1477: error: `basename' undeclared (first use this function) wmapp.cc:1477: error: (Each undeclared identifier is reported only once for each function it appears in.) yarray.h: In member function `YObjectArray<DataType>:: ~YObjectArray() [with DataType = WindowOption]': yarray.h:157: warning: inlining failed in call to `void YObjectArray<DataType>::clear() [with DataType = WindowOption]' yarray.h:149: warning: called from here *** Error code 1 Stop in /data/devel/icewm-1.2/src. *** Error code 1 Stop in /data/devel/icewm-1.2. I didn't test the other four files, but I haven't sen any changes there the last few days. They still don't include libgen.h. The C compiler probably would have gone on, but C++ is a bit more choosy... ---------------------------------------------------------------------- Comment By: Marko Macek (captnmark) Date: 2004-07-19 16:55 Message: Logged In: YES user_id=1814 how is this in 1.2.15pre2? ---------------------------------------------------------------------- Comment By: Robert Klein (roklein) Date: 2004-07-19 12:45 Message: Logged In: YES user_id=96873 mm, you're right. I forgot we're dealing with C++, here... so, the solution for 992522 can be applied here, too, but for the all five files in the original report (not only aworkspaces.cc).. ---------------------------------------------------------------------- Comment By: Thomas Zajic (zlatk0) Date: 2004-07-19 00:33 Message: Logged In: YES user_id=150806 Actually, it _is_ a solution for bug 992522 - gcc doesn't know basename()'s type, so it defaults to int. There is no prototype for newstr to deal with int, though, leading to the error message. If gcc knew that basename()'s type was char*, then it would know which newstr prototype to use - hence no error message. At least that's how I understand the problem. ;-) ---------------------------------------------------------------------- Comment By: Robert Klein (roklein) Date: 2004-07-18 10:43 Message: Logged In: YES user_id=96873 Just saw, the discussion for bug# 992522 has a better fix for this.. (Though it is no solution for bug 992522...) the Problem if 992522 is "newstr" not the warning about basename.. but the basename solution has been posted there. NB: On Linux systems basename() is defined in libgen.h, too (where it should be, according to SUS v2 and v3..) ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100031&aid=993222&group_id=31 |