Ticket #2992 (closed defect: fixed)

Opened 6 years ago

Last modified 6 years ago

mc fails to link when system lib does not contain strverscmp

Reported by: zyxmon Owned by: slavazanko
Priority: major Milestone: 4.8.9
Component: mc-core Version: master
Keywords: Cc:
Blocked By: Blocking:
Branch state: merged Votes for changeset: committed-master

Description

The fix is very simple and obvious.
It is in the attachment.

(I was crosscompiling mc-4.8.8 for a mips router with uclibc0.9.30.3)

Attachments

040_str_verscmp.patch (1.1 KB) - added by zyxmon 6 years ago.
patch to fix an issue

Change History

Changed 6 years ago by zyxmon

patch to fix an issue

comment:1 Changed 6 years ago by slavazanko

  • Status changed from new to accepted
  • Owner set to slavazanko

comment:2 Changed 6 years ago by slavazanko

  • Branch state changed from no branch to on review
  • Milestone changed from Future Releases to 4.8.9

Created branch 2992_strverscmp
Initial changeset:21ad110e66907c5e99d3a2675f971df80c88defb

Review, please.

comment:3 Changed 6 years ago by andrew_b

  • Votes for changeset set to andrew_b

comment:4 follow-up: ↓ 5 Changed 6 years ago by er13

Hi,

wanted to report the same issue but found this ticket before.

The fix from 21ad110e66 is not incorrect but it's a bit strange. str_verscmp (with underscore) is your own replacement for libc (actually glibc) function strverscmp (without underscore). There exists and there never existed function called str_verscmp in any libc implementation. So there is no need to check for it in configure. There is also no need to change anything in lib/strutil/strverscmp.c. defined(HAVE_STR_VERSCMP) will never evaluate to true so it's just a dead-code.

Even if we would assume there are systems out there providing str_verscmp the change in lib/strutil/strverscmp.c is incorrect. On such systems the implementation will end up with a recursive end-less call to itself, this view makes it more evident.

Best,
Gene

comment:5 in reply to: ↑ 4 Changed 6 years ago by andrew_b

All commits in the branch starting with changeset:21ad110e66907c5e99d3a2675f971df80c88defb will be squashed.

comment:6 Changed 6 years ago by angel_il

  • Votes for changeset changed from andrew_b to andrew_b angel_il
  • Branch state changed from on review to approved

comment:7 Changed 6 years ago by slavazanko

  • Status changed from accepted to testing
  • Votes for changeset changed from andrew_b angel_il to committed-master
  • Resolution set to fixed
  • Branch state changed from approved to merged

Merged to master:

git log --pretty=oneline 86fc45d..0013ade
Last edited 6 years ago by slavazanko (previous) (diff)

comment:8 Changed 6 years ago by slavazanko

  • Status changed from testing to closed
Note: See TracTickets for help on using tickets.