View Issue Details

IDProjectCategoryView StatusLast Update
0028971Open CASCADEOCCT:Configurationpublic2018-06-29 21:19
Reporterkgv Assigned Tokgv  
PrioritynormalSeverityminor 
Status closedResolutionreopened 
PlatformLinux 
Product Version6.6.0 
Target Version7.3.0Fixed in Version7.3.0 
Summary0028971: Configuration - fix compatibility with glibc 2.26+ due to xlocale.h removal
Descriptionglibc 2.26 (GNU C Library) changelog entry:
https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=NEWS;hb=HEAD
* The nonstandard header <xlocale.h> has been removed. Most programs should use <locale.h> instead.

indicates that OCCT will have compilation issues with it due to including xlocale.h within Standard_CLocaleSentry.hxx:
#include <locale.h>

#ifndef HAVE_XLOCALE_H
  //! "xlocale.h" available in Mac OS X and glibc (Linux) for a long time as an extension
  //! and become part of POSIX since '2008.
  //! Notice that this is impossible to test (_POSIX_C_SOURCE >= 200809L)
  //! since POSIX didn't declared such identifier.
  #if defined(__APPLE__)
    #define HAVE_XLOCALE_H
  #endif

  //! We check _GNU_SOURCE for glibc extensions here and it is always defined by g++ compiler.
  #if defined(_GNU_SOURCE) && !defined(__ANDROID__)
    #define HAVE_XLOCALE_H
  #endif
#endif // ifndef HAVE_LOCALE_H

#ifdef HAVE_XLOCALE_H
  #include <xlocale.h>
#endif


It looks like locale_t is still there, but header xlocale.h was removed (locale.h is enough, which is already included) - so that "#include <xlocale.h>" should be protected by glibc version check - but actual issues should be checked.
TagsNo tags attached.
Test case numberNot required

Relationships

child of 0022898 closedabv Community IGES import fails in german environment 

Activities

kgv

2017-08-03 09:52

developer   ~0069078

Dear bugmaster,

could you please check how we can verify compilation with glibc 2.6 within our environment?

There is no need to make modifications to our testing cluster, just one time operation to check the issue and the patch (we will get glibc 2.6+ automatically with next versions of Linux distributives anyway).

git

2017-08-07 17:09

administrator   ~0069169

Branch CR28971 has been created by kgv.

SHA-1: c376290468b67b2f62442fe79c229e8473f78cac


Detailed log of new commits:

Author: kgv
Date: Mon Aug 7 17:09:11 2017 +0300

    0028971: Configuration - fix compatibility with glibc 2.26+ due to xlocale.h removal

kgv

2017-08-07 17:52

developer   ~0069175

Please take the patch.
http://jenkins-test-10.nnov.opencascade.com/view/CR28971-master-KGV/view/OCCT%20compile/

bugmaster

2017-08-07 18:07

administrator   ~0069177

Combination -
OCCT branch : master
Products branch : CR28971 : SHA1 - c376290468b67b2f62442fe79c229e8473f78cac
was compiled on Linux, MacOS and Windows platforms.

Number of compiler warnings:

OCCT :
Linux: 0 (0 on master)
Windows: 0 (0 on master)
MacOS : 0 (0 on master)

Products :
Linux: 5 (5 on master)
Windows: 0 (0 on master)
MacOS : 0 (0 on master)

git

2017-08-18 17:00

administrator   ~0069647

Branch CR28971 has been deleted by kgv.

SHA-1: c376290468b67b2f62442fe79c229e8473f78cac

solomin_s

2018-02-14 08:39

updater   ~0073973

Fix is incorrect. xlocale has been removed from 2.26.
But current condition worls only if glibc version >= 2.24! But old code should work as earlier for glibc version < 2.26.
#if defined(HAVE_XLOCALE_H) && !(defined(__GLIBC__) && (__GLIBC__ == 2 && __GLIBC_MINOR__ <= 24))

It should be:
#if defined(HAVE_XLOCALE_H) && (defined(__GLIBC__) && (__GLIBC__ == 2 && __GLIBC_MINOR__ < 26))

kgv

2018-02-14 10:03

developer   ~0073975

solomin_s wrote:
> Fix is incorrect

The target version for this bug is OCCT 7.2.1.
The fixes have been already pushed to master.

solomin_s

2018-02-14 10:08

updater   ~0073977

Ok, fix has been found. Mantis show invalid (old) commit.

abv

2018-02-26 00:16

manager   ~0074130

The correct fix is integrated within commit for #29251

Related Changesets

occt: master e2c4ce48

2017-08-07 14:09:11

kgv


Committer: bugmaster Details Diff
0028971: Configuration - fix compatibility with glibc 2.26+ due to xlocale.h removal Affected Issues
0028971
mod - src/Standard/Standard_CLocaleSentry.cxx Diff File
mod - src/Standard/Standard_CLocaleSentry.hxx Diff File
mod - src/Standard/Standard_CString.cxx Diff File

Issue History

Date Modified Username Field Change
2017-08-03 09:49 kgv New Issue
2017-08-03 09:49 kgv Assigned To => kgv
2017-08-03 09:52 kgv Note Added: 0069078
2017-08-03 09:52 kgv Assigned To kgv => bugmaster
2017-08-03 09:52 kgv Status new => feedback
2017-08-03 09:52 kgv Description Updated
2017-08-03 09:54 kgv Relationship added child of 0022898
2017-08-03 09:55 kgv Product Version 7.1.0 => 6.6.0
2017-08-07 17:09 git Note Added: 0069169
2017-08-07 17:10 kgv Assigned To bugmaster => kgv
2017-08-07 17:10 kgv Status feedback => assigned
2017-08-07 17:52 kgv Note Added: 0069175
2017-08-07 17:52 kgv Assigned To kgv => bugmaster
2017-08-07 17:52 kgv Status assigned => resolved
2017-08-07 17:52 kgv Status resolved => reviewed
2017-08-07 18:07 bugmaster Note Added: 0069177
2017-08-07 18:07 bugmaster Status reviewed => tested
2017-08-07 18:46 bugmaster Test case number => Not required
2017-08-11 07:52 bugmaster Changeset attached => occt master e2c4ce48
2017-08-11 07:52 bugmaster Status tested => verified
2017-08-11 07:52 bugmaster Resolution open => fixed
2017-08-18 17:00 git Note Added: 0069647
2017-09-29 16:17 aiv Fixed in Version => 7.2.0
2017-09-29 16:29 aiv Status verified => closed
2017-10-21 20:40 kgv Assigned To bugmaster => kgv
2017-10-21 20:40 kgv Status closed => feedback
2017-10-21 20:40 kgv Resolution fixed => reopened
2017-10-21 20:40 kgv Fixed in Version 7.2.0 =>
2017-10-21 20:40 kgv Target Version 7.2.0 => 7.3.0
2018-02-14 08:39 solomin_s Note Added: 0073973
2018-02-14 10:03 kgv Note Added: 0073975
2018-02-14 10:08 solomin_s Note Added: 0073977
2018-02-26 00:16 abv Note Added: 0074130
2018-02-26 00:16 abv Status feedback => verified
2018-06-29 21:15 aiv Fixed in Version => 7.3.0
2018-06-29 21:19 aiv Status verified => closed