Commit Graph

8 Commits

Author SHA1 Message Date
LamTrinh.Dev
b6239b8cee [docs] Update links to repositories moved to https://github.com/swiftlang/ 2024-07-22 12:22:43 -07:00
Robert Widmann
2d07f382c5 Delete _InternalSwiftSyntaxParser And Its Build Infrastructure
This is the start of the removal of the C++ implementation of libSyntax
in favor of the new Swift Parser and Swift Syntax libraries. Now that
the Swift Parser has switched the SwiftSyntaxParser library over to
being a thin wrapper around the Swift Parser, there is no longer any
reason we need to retain any libSyntax infrastructure in the swift
compiler.

As a first step, delete the infrastructure that builds
lib_InternalSwiftSyntaxParser and convert any scripts that mention
it to instead mention the static mirror libraries. The --swiftsyntax
build-script flag has been retained and will now just execute the
SwiftSyntax and Swift Parser builds with the just-built tools.
2022-11-02 10:35:29 -07:00
3405691582
37e2b1c8a4 [docs] Update for OpenBSD 7.1.
Make the following documentation changes:

* update last tested version number and emphasize that the process
  may work for later platform versions,

* update required packages to emphasize py3 instead of py2.7,

* python3 link is not strictly required to need root.

* update the suggested checkout config file to the stable branch used
  in the "upstream" checkout config file, and

* mention some extra flags are now required to properly switch off
  Dispatch (since without pr apple/swift-corelibs-libdispatch#559
  Dispatch won't compile).

* reinforce building release by default, since the flags likely needed
  for debug builds aren't provided in the command snippet.
2022-06-11 12:48:58 -04:00
3405691582
b708ed5f45 Fix broken implicit import conditional rename.
In #37686 `SWIFT_IMPLICIT_CONCURRENCY_IMPORT` was introduced alongside
the existing `SWIFT_ENABLE_EXPERIMENTAL_CONCURRENCY`, but the
`#cmakedefine` for this preprocessor symbol was renamed to the former
instead of a new `#cmakedefine` being introduced.

This means the `#ifdef` conditional referred in this commit was broken.
Instead of just introducing the old symbol back again, let's rename it
as it probably was intended here.

However, the semantics of this symbol is slightly different: this now
requires prospective builders to explicitly turn this off on platforms
where Dispatch is unavailable. To address this, the docs are updated to
match. Caveat: I have not ran the procedure in the doc recently, but
this hopefully should suffice to guide the reader until I get around to
doing so.
2021-06-09 22:43:13 -04:00
3405691582
c5be034008 [docs] Minor doc update for OpenBSD.
Swift uses `ar s`, but LLVM does an `ar` and `ranlib` pass separately. To
work around the platform binutils bug, you should use the LLVM version of
both these tools, not just `ar`.
2021-02-07 11:21:02 -05:00
3405691582
36728d73d5 [docs] Update docs for OpenBSD.
When making debug builds, `Decl.cpp` compiles with a large number of ELF
section headers; including randomdata sections as normally included by
the platform for security purposes, this may in reality exceed the ELF
limit of `SHN_LORESERVE`.

In this case, the ELF header field containing the number of section
headers, `e_shnum`, is set to 0 and the real number of section headers
is stored elsewhere. However, when an object file has no section
headers, this field is also set to 0.

OpenBSD uses the GNU binutils by default. These binutils do not handle
the case when `e_shnum` is 0, and assume that the object file has no
section headers.  But the only tool that counts is the static archive
tool `ar`. When creating the archive index, `ar` encounters `Decl.cpp.o`
as part of `libswiftAST.a`, notes that `e_shnum` is 0, and skips the
object file entirely, presumably because it thinks the object file has
no section headers and therefore no symbols. This leads the linker to
assume that symbols in `Decl.cpp.o` are not part of `libswiftAST.a`,
when in fact they are.

The LLVM version of `ar` does not appear to have this bug.

Since this is only a problem that is more likely to occur on debug
builds and workarounds like enabling LTO can alleviate the problem, do
not recommend that the `llvm` package be added as part of the standard
package dependency set, but merely note that using `llvm-ar` can work
around the problem. Indeed, future OpenBSD versions may include updated
binutils which may have this bug fixed.

While we are here, the new concurrency features require libdispatch, and
since some of the necessary patches to libdispatch have not yet been
reviewed or accepted upstream yet to make it work on OpenBSD, recommend
that prospective builders for this platform still disable features that
depend on libdispatch for now.

Additionally, update the platform version number which has been tested.
2021-01-18 20:19:16 -05:00
Slava Pestov
c997016bc6 Update some docs to talk about 'main' instead of 'master'
Fixes https://bugs.swift.org/browse/SR-14015 / rdar://problem/72819056
2021-01-11 22:57:51 -05:00
3405691582
a51db090fb [docs] Build instructions for OpenBSD. (#33934)
Swift now builds cleanly out of the box as of OpenBSD 6.8-beta.

While there are still more unit test tweaks to be made, document the
preparation and other quirk flags necessary to get a clean build on this
system.
2020-09-15 22:20:13 +01:00