Looking at current trunk, it looks like something was done about the hardcoded 
list of gcc versions:
http://llvm.org/viewvc/llvm-project?view=rev&revision=143874

However, nothing has been done about the hardcoded list of distros and
distro release files.  There is still

enum LinuxDistro {
  ArchLinux,
  DebianLenny,
  DebianSqueeze,
  DebianWheezy,
  Exherbo,
  RHEL4,
  RHEL5,
  RHEL6,
  Fedora13,
  Fedora14,
  Fedora15,
  FedoraRawhide,
  OpenSuse11_3,
  OpenSuse11_4,
  OpenSuse12_1,
  UbuntuHardy,
  UbuntuIntrepid,
  UbuntuJaunty,
  UbuntuKarmic,
  UbuntuLucid,
  UbuntuMaverick,
  UbuntuNatty,
  UbuntuOneiric,
  UnknownDistro
};

along with code to parse /etc/lsb-release, /etc/redhat-release,
/etc/debian_version, /etc/SuSE-release, /etc/exherbo-release, and /etc
/arch-release to detect which of these distros is running.  This code
automatically breaks every six months when Ubuntu and Fedora both
release another version.  (For example, Ubuntu has a new Precise
Pangolin development release, and Fedora released Fedora 16 as stable.
Even Debian squeeze released, so its /etc/debian_version looks like
‘6.0.3’ instead of ‘squeeze/sid’ now and DetectLinuxDistro() misdetects
it.)

Maybe a stopgap solution would be to treat unknown Ubuntu releases as
UbuntuOneiric, unknown Fedora releases as FedoraRawhide, etc. instead of
categorizing all distros from the future as UnknownDistro.  But I think
the entire idea of looking at /etc/*-release files to guess the right
linker flags is a violation of abstraction.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/792146

Title:
  clang can’t link any programs: cannot find crt1.o, crti.o, crtn.o

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

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to