commit 9101c36c653cf90ccd133d6e85eca6b264de4b81
Author: David Kalnischkies <da...@kalnischkies.de>
Date:   Fri Aug 12 19:11:01 2016 +0200

    drop "incorrect" const attribute from DirectoryExists
    
    Since its existence in 2010 DirectoryExists was always marked with this
    attribute, but for no real reason. Arguably a check for the existence of
    the file is not modifying global state, so theoretically this shouldn't
    be a problem. It is wrong from a logical point of view through as
    between two calls the directory could be created so the promise we made
    to the compiler that it could remove the second call would be wrong, so
    API wise it is wrong.
    
    The problem for the compiler is a lot more likely through in the
    underlying implementation of stat() and co, so for both reasons lets
    drop this attribute here and be (hopefully) done with it forever.
    
    It's a bit mysterious that this is only observeable on ppc64el and can be
    fixed by reordering code ever so slightly, but in the end its more our
    fault for adding this attribute than the compilers fault for doing
    something silly based on the attribute.
    
    LP: 1473674

diff --git a/apt-pkg/contrib/fileutl.h b/apt-pkg/contrib/fileutl.h
index 4a1676d..15665f8 100644
--- a/apt-pkg/contrib/fileutl.h
+++ b/apt-pkg/contrib/fileutl.h
@@ -164,7 +164,7 @@ bool RemoveFile(char const * const Function, std::string 
const &FileName);
 int GetLock(std::string File,bool Errors = true);
 bool FileExists(std::string File);
 bool RealFileExists(std::string File);
-bool DirectoryExists(std::string const &Path) APT_CONST;
+bool DirectoryExists(std::string const &Path);
 bool CreateDirectory(std::string const &Parent, std::string const &Path);
 time_t GetModificationTime(std::string const &Path);
 bool Rename(std::string From, std::string To);

** Changed in: gcc-6 (Ubuntu)
       Status: New => Invalid

** Changed in: gcc-5 (Ubuntu)
       Status: New => Invalid

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to apt in Ubuntu.
https://bugs.launchpad.net/bugs/1473674

Title:
  apt fails a test from the testsuite on ppc64el when built with gcc-5
  and -O3

Status in gcc:
  Unknown
Status in apt package in Ubuntu:
  Fix Released
Status in gcc-5 package in Ubuntu:
  Invalid
Status in gcc-6 package in Ubuntu:
  Invalid
Status in apt source package in Wily:
  Confirmed

Bug description:
  to reproduce:

   - wily chroot
   - PPA 
https://launchpad.net/~ci-train-ppa-service/+archive/ubuntu/landing-016/
     (this holds gcc-5 as the default, branch 20150711).
   - dpkg-buildpackage -B 

  note that explicitly using the gcc-5/g++-5 from wily doesn't show the
  test failure. the only difference in the configuration is that the one
  in wily is built using the old libstdc++ ABI and the one in the PPA
  with the dual ABI defaulting to new/c++11.

  building with -O2 instead of -O3 works around the issue.

  [ RUN      ] CDROMTest.FindPackages
  
/scratch/doko/tmp/apt-1.0.9.10ubuntu1/test/libapt/cdromfindpackages_test.cc:95: 
Failure
  Value of: InfoDir
    Actual: ""
  Expected: path + "/.disk/"
  Which is: "/tmp/apt-tests-findpackage.gpopMw/.disk/"
  [  FAILED  ] CDROMTest.FindPackages (4 ms)

To manage notifications about this bug go to:
https://bugs.launchpad.net/gcc/+bug/1473674/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to