root/root-ntuple-largefile.patch
Mattias Ellert b2cd752635 Update to 6.22.00
Drop patches accepted upstream
  root-FitData-assert-fix.patch
  root-clang-altivec-vector.patch
  root-format-fix.patch
  root-moved-file.patch
  root-xmlmodify-dep.patch
New and improved Python bindings
The new Python bindings can be built for both Python 2 and Python 3
  out of the box. Dropped the workaround in specfile for this (EPEL 7)
Dropped the python3-other packages (EPEL 7)
The new Python bindings has split the TPython interface to a separate
  library. Now in a separate root-tpython package
root-tpython and root-tmva-python are now using Python 3 on EPEL 7
New subpackage root-gui-browsable
New patches (submitted upstream)
  Fix too aggressive -Werror replacements
  Add missing call to TFile::SetCacheFileDir in a TMVA tutorial
  Adjust stressGraphics.ref
  Fix off-by-one error in histogram v7 bin iterator
  Compatibility with python 2.7 versions before 2.7.9
  Fix the RNTuple.LargeFile test on 32bit (i386 and armv7hf)
  Fix doxygen issues
  Fix bad regex in TProofMgr
  Compatibility with xrootd 5
2020-07-15 04:44:51 +02:00

139 lines
4.5 KiB
Diff

diff -ur root-6.22.00.orig/io/io/src/RRawFileUnix.cxx root-6.22.00/io/io/src/RRawFileUnix.cxx
--- root-6.22.00.orig/io/io/src/RRawFileUnix.cxx 2020-06-14 17:51:48.000000000 +0200
+++ root-6.22.00/io/io/src/RRawFileUnix.cxx 2020-07-02 09:02:48.202677798 +0200
@@ -9,6 +9,8 @@
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
+#include "ROOT/RConfig.hxx"
+
#include "ROOT/RRawFileUnix.hxx"
#include "ROOT/RMakeUnique.hxx"
@@ -47,8 +49,13 @@
std::uint64_t ROOT::Internal::RRawFileUnix::GetSizeImpl()
{
+#ifdef R__SEEK64
+ struct stat64 info;
+ int res = fstat64(fFileDes, &info);
+#else
struct stat info;
int res = fstat(fFileDes, &info);
+#endif
if (res != 0)
throw std::runtime_error("Cannot call fstat on '" + fUrl + "', error: " + std::string(strerror(errno)));
return info.st_size;
@@ -68,7 +75,11 @@
void ROOT::Internal::RRawFileUnix::OpenImpl()
{
+#ifdef R__SEEK64
+ fFileDes = open64(GetLocation(fUrl).c_str(), O_RDONLY);
+#else
fFileDes = open(GetLocation(fUrl).c_str(), O_RDONLY);
+#endif
if (fFileDes < 0) {
throw std::runtime_error("Cannot open '" + fUrl + "', error: " + std::string(strerror(errno)));
}
@@ -76,8 +87,13 @@
if (fOptions.fBlockSize >= 0)
return;
+#ifdef R__SEEK64
+ struct stat64 info;
+ int res = fstat64(fFileDes, &info);
+#else
struct stat info;
int res = fstat(fFileDes, &info);
+#endif
if (res != 0) {
throw std::runtime_error("Cannot call fstat on '" + fUrl + "', error: " + std::string(strerror(errno)));
}
@@ -92,7 +108,11 @@
{
size_t total_bytes = 0;
while (nbytes) {
+#ifdef R__SEEK64
+ ssize_t res = pread64(fFileDes, buffer, nbytes, offset);
+#else
ssize_t res = pread(fFileDes, buffer, nbytes, offset);
+#endif
if (res < 0) {
if (errno == EINTR)
continue;
diff -ur root-6.22.00.orig/tree/ntuple/v7/src/RMiniFile.cxx root-6.22.00/tree/ntuple/v7/src/RMiniFile.cxx
--- root-6.22.00.orig/tree/ntuple/v7/src/RMiniFile.cxx 2020-06-14 17:51:48.000000000 +0200
+++ root-6.22.00/tree/ntuple/v7/src/RMiniFile.cxx 2020-07-02 10:06:55.066204147 +0200
@@ -13,6 +13,8 @@
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
+#include <ROOT/RConfig.hxx>
+
#include "ROOT/RMiniFile.hxx"
#include <ROOT/RRawFile.hxx>
@@ -999,7 +1001,11 @@
R__ASSERT(fFile);
size_t retval;
if ((offset >= 0) && (static_cast<std::uint64_t>(offset) != fFilePos)) {
+#ifdef R__SEEK64
+ retval = fseeko64(fFile, offset, SEEK_SET);
+#else
retval = fseek(fFile, offset, SEEK_SET);
+#endif
R__ASSERT(retval == 0);
fFilePos = offset;
}
@@ -1099,7 +1105,11 @@
if (idxDirSep != std::string::npos) {
fileName.erase(0, idxDirSep + 1);
}
+#ifdef R__SEEK64
+ FILE *fileStream = fopen64(std::string(path.data(), path.size()).c_str(), "wb");
+#else
FILE *fileStream = fopen(std::string(path.data(), path.size()).c_str(), "wb");
+#endif
R__ASSERT(fileStream);
auto writer = new RNTupleFileWriter(ntupleName);
@@ -1319,7 +1329,11 @@
fFileSimple.Write(&strEmpty, strEmpty.GetSize());
fFileSimple.Write(&fileRoot, fileRoot.GetSize());
fFileSimple.fFilePos = tail;
+#ifdef R__SEEK64
+ auto retval = fseeko64(fFileSimple.fFile, tail, SEEK_SET);
+#else
auto retval = fseek(fFileSimple.fFile, tail, SEEK_SET);
+#endif
R__ASSERT(retval == 0);
fFileSimple.fFilePos = tail;
}
diff -ur root-6.22.00.orig/tree/ntuple/v7/test/ntuple.cxx root-6.22.00/tree/ntuple/v7/test/ntuple.cxx
--- root-6.22.00.orig/tree/ntuple/v7/test/ntuple.cxx 2020-06-14 17:51:48.000000000 +0200
+++ root-6.22.00/tree/ntuple/v7/test/ntuple.cxx 2020-07-02 10:10:54.409737807 +0200
@@ -1,3 +1,5 @@
+#include <ROOT/RConfig.hxx>
+
#include <ROOT/RColumnModel.hxx>
#include <ROOT/RDataFrame.hxx>
#include <ROOT/RNTuple.hxx>
@@ -891,10 +893,17 @@
ntuple->Fill();
}
}
+#ifdef R__SEEK64
+ FILE *file = fopen64(fileGuard.GetPath().c_str(), "rb");
+ ASSERT_TRUE(file != nullptr);
+ EXPECT_EQ(0, fseeko64(file, 0, SEEK_END));
+ EXPECT_GT(ftello64(file), 2048LL * 1024LL * 1024LL);
+#else
FILE *file = fopen(fileGuard.GetPath().c_str(), "rb");
ASSERT_TRUE(file != nullptr);
EXPECT_EQ(0, fseek(file, 0, SEEK_END));
EXPECT_GT(ftell(file), 2048LL * 1024LL * 1024LL);
+#endif
fclose(file);
auto ntuple = RNTupleReader::Open("myNTuple", fileGuard.GetPath());