Skip to content

Remove usages of Ubuntu 16.04 from pipelines - #75513

Merged
jkotas merged 8 commits into
dotnet:mainfrom
am11:feature/ci/image-updates
Sep 22, 2022
Merged

Remove usages of Ubuntu 16.04 from pipelines#75513
jkotas merged 8 commits into
dotnet:mainfrom
am11:feature/ci/image-updates

Conversation

@am11

@am11am11 commented Sep 13, 2022

Copy link
Copy Markdown
Member

Ubuntu Xenial 16.04 has reached the end of its five year LTS window.

Summary:

  • Update to Ubuntu 18.04 VM or 22.04 host for alpine cross images. The main difference in cross images is the newer host compiler, otherwise rootfs has remained the same.
  • Simplify pipeline scripts; RuntimeOS is inferred except for linux-bionic.
  • Delete old jenkins scripts from src/tests/Common/scripts, which don't work. The blob URLs in those scripts return 404 and all deleted scripts have replacements.

@ghostghost added the community-contribution Indicates that the PR has been added by a community member label Sep 13, 2022
@ghost

Copy link
Copy Markdown

I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @dotnet/runtime-infrastructure
See info in area-owners.md if you want to be subscribed.

Issue Details

Ubuntu Xenial 16.04 has reached the end of its five year LTS window.

Summary:

  • Update to Ubuntu 18.04 VM or 22.04 host for alpine cross images. The main difference in cross images is the newer host compiler, otherwise rootfs has remains the same.
  • Simplify pipeline scripts; RuntimeOS is inferred except for linux-bionic.
  • Delete old jenkins scripts from src/tests/Common/scripts, which don't work. The blob URLs in those scripts return 404 and all deleted scripts have replacements.
Author:am11
Assignees:-
Labels:

area-Infrastructure, community-contribution

Milestone:-

@am11
am11force-pushed the feature/ci/image-updates branch 6 times, most recently from cc9bb3e to bc4f125CompareSeptember 14, 2022 06:10
@am11
am11force-pushed the feature/ci/image-updates branch 2 times, most recently from df466a2 to d693422CompareSeptember 14, 2022 11:07
@am11
am11force-pushed the feature/ci/image-updates branch from d693422 to 89a6456CompareSeptember 14, 2022 12:04
Comment threadsrc/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.targets Outdated
@am11
am11 marked this pull request as ready for review September 14, 2022 15:47
@am11

am11 commented Sep 14, 2022

Copy link
Copy Markdown
MemberAuthor

llvmaot failure is intermittent and unrelated (e.g. it failed on main branch in 2bc4f61 as well). I think the problem is it picks the incompatible helix machine for hwintrinsic tests. cc @vargaz

Comment threadeng/build.sh
*crossbuild=true*)
crossBuild=1
extraargs="$extraargs $1"
shift 1

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Handled /p:CrossBuild=true this way to support multiple property cases like ./build.sh /p:'RuntimeFlavor=coreclr;CrossBuild=true;Configuration=release'. Ideally, all cross-building CI legs should explicitly pass -cross (which appends /p:CrossBuild=true), but an explicit /p:CrossBuild=true should have the same effect.

@jkotasjkotas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thanks!

@am11

am11 commented Sep 15, 2022

Copy link
Copy Markdown
MemberAuthor

The latest binutils 2.39 linker turned out to be stricter than its predecessors:

 Generating native code
/usr/bin/aarch64-alpine-linux-musl-ld(0,0): error : (NETCORE_ENGINEERING_TELEMETRY=Build) /__w/1/s/artifacts/bin/coreclr/Linux.arm64.Debug/crossgen2/linux-musl-arm64/native/crossgen2
has a LOAD segment with RWX permissions

Refs:

We have couple of options:

@jkotas, which option do you suggest? (I think we must fix it or suppress it for consumers, regardless of the option selected for our CI leg, as consumer can have latest binutils in their PATH)

@jkotas

Copy link
Copy Markdown
Member

It would be useful to figure out which segment it is complaining about. It should not be hard to fix.

@am11

am11 commented Sep 15, 2022

Copy link
Copy Markdown
MemberAuthor

With retain,used lld is happy but ld is not. Since ld is default on linux distros, I have reverted it for now.

Ideally we should find a way to align them with retain,used, but I am not sure how that can be done with annotations; it might be that we need to resort to inline assembly for that.

@jkotas

Copy link
Copy Markdown
Member

More details about this preference are in #52244.

We do the page protection flipping around GS cookie in nativeaot too, so it sounds like we will have a problem with Linux arm64 with 64kB pages. The page protection flipping around GS cookie seems very fragile. I am wondering whether we should stop doing that, in nativeaot at least.

@am11

am11 commented Sep 16, 2022

Copy link
Copy Markdown
MemberAuthor

One problem is that we have hardcoded assumptions about page sizes:

#elif defined(HOST_ARM64)
#defineDATA_ALIGNMENT8
#ifndef OS_PAGE_SIZE
#ifdef HOST_OSX
#defineOS_PAGE_SIZE0x4000
#else
#defineOS_PAGE_SIZE0x1000
whereas we should instead be querying the page size from OS at run-time, as we do in GC (int getpagesize(void) from unistd.h). As it stands, 64K paged linux-arm64 kernels are currently not supported in NativeAOT regardless of the linker flavor.

System.Speech failures on Windows are unrelated (#75732).

@jkotas

Copy link
Copy Markdown
Member

@dotnet/runtime-infrastructure Could you please review as well?

Comment threadsrc/tests/Common/scripts/run-pmi-diffs.py
Comment threadeng/pipelines/common/global-build-job.yml
@am11

am11 commented Sep 22, 2022

Copy link
Copy Markdown
MemberAuthor

CI failure is #75767. It's ready to merge.

@jkotas
jkotas merged commit 3eacbaf into dotnet:mainSep 22, 2022
@ghostghost locked as resolved and limited conversation to collaborators Oct 23, 2022
@am11
am11 deleted the feature/ci/image-updates branch January 17, 2023 05:44
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Infrastructurecommunity-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@am11@jkotas@jkoritzinsky@hoyosjs
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Remove usages of Ubuntu 16.04 from pipelines by am11 · Pull Request #75513 · dotnet/runtime · GitHub
Skip to content

Remove usages of Ubuntu 16.04 from pipelines - #75513

Merged
jkotas merged 8 commits into
dotnet:mainfrom
am11:feature/ci/image-updates
Sep 22, 2022
Merged

Remove usages of Ubuntu 16.04 from pipelines#75513
jkotas merged 8 commits into
dotnet:mainfrom
am11:feature/ci/image-updates

Conversation

@am11

@am11am11 commented Sep 13, 2022

Copy link
Copy Markdown
Member

Ubuntu Xenial 16.04 has reached the end of its five year LTS window.

Summary:

  • Update to Ubuntu 18.04 VM or 22.04 host for alpine cross images. The main difference in cross images is the newer host compiler, otherwise rootfs has remained the same.
  • Simplify pipeline scripts; RuntimeOS is inferred except for linux-bionic.
  • Delete old jenkins scripts from src/tests/Common/scripts, which don't work. The blob URLs in those scripts return 404 and all deleted scripts have replacements.

@ghostghost added the community-contribution Indicates that the PR has been added by a community member label Sep 13, 2022
@ghost

Copy link
Copy Markdown

I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @dotnet/runtime-infrastructure
See info in area-owners.md if you want to be subscribed.

Issue Details

Ubuntu Xenial 16.04 has reached the end of its five year LTS window.

Summary:

  • Update to Ubuntu 18.04 VM or 22.04 host for alpine cross images. The main difference in cross images is the newer host compiler, otherwise rootfs has remains the same.
  • Simplify pipeline scripts; RuntimeOS is inferred except for linux-bionic.
  • Delete old jenkins scripts from src/tests/Common/scripts, which don't work. The blob URLs in those scripts return 404 and all deleted scripts have replacements.
Author:am11
Assignees:-
Labels:

area-Infrastructure, community-contribution

Milestone:-

@am11
am11force-pushed the feature/ci/image-updates branch 6 times, most recently from cc9bb3e to bc4f125CompareSeptember 14, 2022 06:10
@am11
am11force-pushed the feature/ci/image-updates branch 2 times, most recently from df466a2 to d693422CompareSeptember 14, 2022 11:07
@am11
am11force-pushed the feature/ci/image-updates branch from d693422 to 89a6456CompareSeptember 14, 2022 12:04
Comment threadsrc/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.targets Outdated
@am11
am11 marked this pull request as ready for review September 14, 2022 15:47
@am11

am11 commented Sep 14, 2022

Copy link
Copy Markdown
MemberAuthor

llvmaot failure is intermittent and unrelated (e.g. it failed on main branch in 2bc4f61 as well). I think the problem is it picks the incompatible helix machine for hwintrinsic tests. cc @vargaz

Comment threadeng/build.sh
*crossbuild=true*)
crossBuild=1
extraargs="$extraargs $1"
shift 1

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Handled /p:CrossBuild=true this way to support multiple property cases like ./build.sh /p:'RuntimeFlavor=coreclr;CrossBuild=true;Configuration=release'. Ideally, all cross-building CI legs should explicitly pass -cross (which appends /p:CrossBuild=true), but an explicit /p:CrossBuild=true should have the same effect.

@jkotasjkotas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thanks!

@am11

am11 commented Sep 15, 2022

Copy link
Copy Markdown
MemberAuthor

The latest binutils 2.39 linker turned out to be stricter than its predecessors:

 Generating native code
/usr/bin/aarch64-alpine-linux-musl-ld(0,0): error : (NETCORE_ENGINEERING_TELEMETRY=Build) /__w/1/s/artifacts/bin/coreclr/Linux.arm64.Debug/crossgen2/linux-musl-arm64/native/crossgen2
has a LOAD segment with RWX permissions

Refs:

We have couple of options:

@jkotas, which option do you suggest? (I think we must fix it or suppress it for consumers, regardless of the option selected for our CI leg, as consumer can have latest binutils in their PATH)

@jkotas

Copy link
Copy Markdown
Member

It would be useful to figure out which segment it is complaining about. It should not be hard to fix.

@am11

am11 commented Sep 15, 2022

Copy link
Copy Markdown
MemberAuthor

With retain,used lld is happy but ld is not. Since ld is default on linux distros, I have reverted it for now.

Ideally we should find a way to align them with retain,used, but I am not sure how that can be done with annotations; it might be that we need to resort to inline assembly for that.

@jkotas

Copy link
Copy Markdown
Member

More details about this preference are in #52244.

We do the page protection flipping around GS cookie in nativeaot too, so it sounds like we will have a problem with Linux arm64 with 64kB pages. The page protection flipping around GS cookie seems very fragile. I am wondering whether we should stop doing that, in nativeaot at least.

@am11

am11 commented Sep 16, 2022

Copy link
Copy Markdown
MemberAuthor

One problem is that we have hardcoded assumptions about page sizes:

#elif defined(HOST_ARM64)
#defineDATA_ALIGNMENT8
#ifndef OS_PAGE_SIZE
#ifdef HOST_OSX
#defineOS_PAGE_SIZE0x4000
#else
#defineOS_PAGE_SIZE0x1000
whereas we should instead be querying the page size from OS at run-time, as we do in GC (int getpagesize(void) from unistd.h). As it stands, 64K paged linux-arm64 kernels are currently not supported in NativeAOT regardless of the linker flavor.

System.Speech failures on Windows are unrelated (#75732).

@jkotas

Copy link
Copy Markdown
Member

@dotnet/runtime-infrastructure Could you please review as well?

Comment threadsrc/tests/Common/scripts/run-pmi-diffs.py
Comment threadeng/pipelines/common/global-build-job.yml
@am11

am11 commented Sep 22, 2022

Copy link
Copy Markdown
MemberAuthor

CI failure is #75767. It's ready to merge.

@jkotas
jkotas merged commit 3eacbaf into dotnet:mainSep 22, 2022
@ghostghost locked as resolved and limited conversation to collaborators Oct 23, 2022
@am11
am11 deleted the feature/ci/image-updates branch January 17, 2023 05:44
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Infrastructurecommunity-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@am11@jkotas@jkoritzinsky@hoyosjs
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Remove usages of Ubuntu 16.04 from pipelines by am11 · Pull Request #75513 · dotnet/runtime · GitHub
Skip to content

Remove usages of Ubuntu 16.04 from pipelines - #75513

Merged
jkotas merged 8 commits into
dotnet:mainfrom
am11:feature/ci/image-updates
Sep 22, 2022
Merged

Remove usages of Ubuntu 16.04 from pipelines#75513
jkotas merged 8 commits into
dotnet:mainfrom
am11:feature/ci/image-updates

Conversation

@am11

@am11am11 commented Sep 13, 2022

Copy link
Copy Markdown
Member

Ubuntu Xenial 16.04 has reached the end of its five year LTS window.

Summary:

  • Update to Ubuntu 18.04 VM or 22.04 host for alpine cross images. The main difference in cross images is the newer host compiler, otherwise rootfs has remained the same.
  • Simplify pipeline scripts; RuntimeOS is inferred except for linux-bionic.
  • Delete old jenkins scripts from src/tests/Common/scripts, which don't work. The blob URLs in those scripts return 404 and all deleted scripts have replacements.

@ghostghost added the community-contribution Indicates that the PR has been added by a community member label Sep 13, 2022
@ghost

Copy link
Copy Markdown

I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @dotnet/runtime-infrastructure
See info in area-owners.md if you want to be subscribed.

Issue Details

Ubuntu Xenial 16.04 has reached the end of its five year LTS window.

Summary:

  • Update to Ubuntu 18.04 VM or 22.04 host for alpine cross images. The main difference in cross images is the newer host compiler, otherwise rootfs has remains the same.
  • Simplify pipeline scripts; RuntimeOS is inferred except for linux-bionic.
  • Delete old jenkins scripts from src/tests/Common/scripts, which don't work. The blob URLs in those scripts return 404 and all deleted scripts have replacements.
Author:am11
Assignees:-
Labels:

area-Infrastructure, community-contribution

Milestone:-

@am11
am11force-pushed the feature/ci/image-updates branch 6 times, most recently from cc9bb3e to bc4f125CompareSeptember 14, 2022 06:10
@am11
am11force-pushed the feature/ci/image-updates branch 2 times, most recently from df466a2 to d693422CompareSeptember 14, 2022 11:07
@am11
am11force-pushed the feature/ci/image-updates branch from d693422 to 89a6456CompareSeptember 14, 2022 12:04
Comment threadsrc/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.targets Outdated
@am11
am11 marked this pull request as ready for review September 14, 2022 15:47
@am11

am11 commented Sep 14, 2022

Copy link
Copy Markdown
MemberAuthor

llvmaot failure is intermittent and unrelated (e.g. it failed on main branch in 2bc4f61 as well). I think the problem is it picks the incompatible helix machine for hwintrinsic tests. cc @vargaz

Comment threadeng/build.sh
*crossbuild=true*)
crossBuild=1
extraargs="$extraargs $1"
shift 1

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Handled /p:CrossBuild=true this way to support multiple property cases like ./build.sh /p:'RuntimeFlavor=coreclr;CrossBuild=true;Configuration=release'. Ideally, all cross-building CI legs should explicitly pass -cross (which appends /p:CrossBuild=true), but an explicit /p:CrossBuild=true should have the same effect.

@jkotasjkotas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thanks!

@am11

am11 commented Sep 15, 2022

Copy link
Copy Markdown
MemberAuthor

The latest binutils 2.39 linker turned out to be stricter than its predecessors:

 Generating native code
/usr/bin/aarch64-alpine-linux-musl-ld(0,0): error : (NETCORE_ENGINEERING_TELEMETRY=Build) /__w/1/s/artifacts/bin/coreclr/Linux.arm64.Debug/crossgen2/linux-musl-arm64/native/crossgen2
has a LOAD segment with RWX permissions

Refs:

We have couple of options:

@jkotas, which option do you suggest? (I think we must fix it or suppress it for consumers, regardless of the option selected for our CI leg, as consumer can have latest binutils in their PATH)

@jkotas

Copy link
Copy Markdown
Member

It would be useful to figure out which segment it is complaining about. It should not be hard to fix.

@am11

am11 commented Sep 15, 2022

Copy link
Copy Markdown
MemberAuthor

With retain,used lld is happy but ld is not. Since ld is default on linux distros, I have reverted it for now.

Ideally we should find a way to align them with retain,used, but I am not sure how that can be done with annotations; it might be that we need to resort to inline assembly for that.

@jkotas

Copy link
Copy Markdown
Member

More details about this preference are in #52244.

We do the page protection flipping around GS cookie in nativeaot too, so it sounds like we will have a problem with Linux arm64 with 64kB pages. The page protection flipping around GS cookie seems very fragile. I am wondering whether we should stop doing that, in nativeaot at least.

@am11

am11 commented Sep 16, 2022

Copy link
Copy Markdown
MemberAuthor

One problem is that we have hardcoded assumptions about page sizes:

#elif defined(HOST_ARM64)
#defineDATA_ALIGNMENT8
#ifndef OS_PAGE_SIZE
#ifdef HOST_OSX
#defineOS_PAGE_SIZE0x4000
#else
#defineOS_PAGE_SIZE0x1000
whereas we should instead be querying the page size from OS at run-time, as we do in GC (int getpagesize(void) from unistd.h). As it stands, 64K paged linux-arm64 kernels are currently not supported in NativeAOT regardless of the linker flavor.

System.Speech failures on Windows are unrelated (#75732).

@jkotas

Copy link
Copy Markdown
Member

@dotnet/runtime-infrastructure Could you please review as well?

Comment threadsrc/tests/Common/scripts/run-pmi-diffs.py
Comment threadeng/pipelines/common/global-build-job.yml
@am11

am11 commented Sep 22, 2022

Copy link
Copy Markdown
MemberAuthor

CI failure is #75767. It's ready to merge.

@jkotas
jkotas merged commit 3eacbaf into dotnet:mainSep 22, 2022
@ghostghost locked as resolved and limited conversation to collaborators Oct 23, 2022
@am11
am11 deleted the feature/ci/image-updates branch January 17, 2023 05:44
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Infrastructurecommunity-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@am11@jkotas@jkoritzinsky@hoyosjs
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Remove usages of Ubuntu 16.04 from pipelines by am11 · Pull Request #75513 · dotnet/runtime · GitHub
Skip to content

Remove usages of Ubuntu 16.04 from pipelines - #75513

Merged
jkotas merged 8 commits into
dotnet:mainfrom
am11:feature/ci/image-updates
Sep 22, 2022
Merged

Remove usages of Ubuntu 16.04 from pipelines#75513
jkotas merged 8 commits into
dotnet:mainfrom
am11:feature/ci/image-updates

Conversation

@am11

@am11am11 commented Sep 13, 2022

Copy link
Copy Markdown
Member

Ubuntu Xenial 16.04 has reached the end of its five year LTS window.

Summary:

  • Update to Ubuntu 18.04 VM or 22.04 host for alpine cross images. The main difference in cross images is the newer host compiler, otherwise rootfs has remained the same.
  • Simplify pipeline scripts; RuntimeOS is inferred except for linux-bionic.
  • Delete old jenkins scripts from src/tests/Common/scripts, which don't work. The blob URLs in those scripts return 404 and all deleted scripts have replacements.

@ghostghost added the community-contribution Indicates that the PR has been added by a community member label Sep 13, 2022
@ghost

Copy link
Copy Markdown

I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @dotnet/runtime-infrastructure
See info in area-owners.md if you want to be subscribed.

Issue Details

Ubuntu Xenial 16.04 has reached the end of its five year LTS window.

Summary:

  • Update to Ubuntu 18.04 VM or 22.04 host for alpine cross images. The main difference in cross images is the newer host compiler, otherwise rootfs has remains the same.
  • Simplify pipeline scripts; RuntimeOS is inferred except for linux-bionic.
  • Delete old jenkins scripts from src/tests/Common/scripts, which don't work. The blob URLs in those scripts return 404 and all deleted scripts have replacements.
Author:am11
Assignees:-
Labels:

area-Infrastructure, community-contribution

Milestone:-

@am11
am11force-pushed the feature/ci/image-updates branch 6 times, most recently from cc9bb3e to bc4f125CompareSeptember 14, 2022 06:10
@am11
am11force-pushed the feature/ci/image-updates branch 2 times, most recently from df466a2 to d693422CompareSeptember 14, 2022 11:07
@am11
am11force-pushed the feature/ci/image-updates branch from d693422 to 89a6456CompareSeptember 14, 2022 12:04
Comment threadsrc/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.targets Outdated
@am11
am11 marked this pull request as ready for review September 14, 2022 15:47
@am11

am11 commented Sep 14, 2022

Copy link
Copy Markdown
MemberAuthor

llvmaot failure is intermittent and unrelated (e.g. it failed on main branch in 2bc4f61 as well). I think the problem is it picks the incompatible helix machine for hwintrinsic tests. cc @vargaz

Comment threadeng/build.sh
*crossbuild=true*)
crossBuild=1
extraargs="$extraargs $1"
shift 1

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Handled /p:CrossBuild=true this way to support multiple property cases like ./build.sh /p:'RuntimeFlavor=coreclr;CrossBuild=true;Configuration=release'. Ideally, all cross-building CI legs should explicitly pass -cross (which appends /p:CrossBuild=true), but an explicit /p:CrossBuild=true should have the same effect.

@jkotasjkotas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thanks!

@am11

am11 commented Sep 15, 2022

Copy link
Copy Markdown
MemberAuthor

The latest binutils 2.39 linker turned out to be stricter than its predecessors:

 Generating native code
/usr/bin/aarch64-alpine-linux-musl-ld(0,0): error : (NETCORE_ENGINEERING_TELEMETRY=Build) /__w/1/s/artifacts/bin/coreclr/Linux.arm64.Debug/crossgen2/linux-musl-arm64/native/crossgen2
has a LOAD segment with RWX permissions

Refs:

We have couple of options:

@jkotas, which option do you suggest? (I think we must fix it or suppress it for consumers, regardless of the option selected for our CI leg, as consumer can have latest binutils in their PATH)

@jkotas

Copy link
Copy Markdown
Member

It would be useful to figure out which segment it is complaining about. It should not be hard to fix.

@am11

am11 commented Sep 15, 2022

Copy link
Copy Markdown
MemberAuthor

With retain,used lld is happy but ld is not. Since ld is default on linux distros, I have reverted it for now.

Ideally we should find a way to align them with retain,used, but I am not sure how that can be done with annotations; it might be that we need to resort to inline assembly for that.

@jkotas

Copy link
Copy Markdown
Member

More details about this preference are in #52244.

We do the page protection flipping around GS cookie in nativeaot too, so it sounds like we will have a problem with Linux arm64 with 64kB pages. The page protection flipping around GS cookie seems very fragile. I am wondering whether we should stop doing that, in nativeaot at least.

@am11

am11 commented Sep 16, 2022

Copy link
Copy Markdown
MemberAuthor

One problem is that we have hardcoded assumptions about page sizes:

#elif defined(HOST_ARM64)
#defineDATA_ALIGNMENT8
#ifndef OS_PAGE_SIZE
#ifdef HOST_OSX
#defineOS_PAGE_SIZE0x4000
#else
#defineOS_PAGE_SIZE0x1000
whereas we should instead be querying the page size from OS at run-time, as we do in GC (int getpagesize(void) from unistd.h). As it stands, 64K paged linux-arm64 kernels are currently not supported in NativeAOT regardless of the linker flavor.

System.Speech failures on Windows are unrelated (#75732).

@jkotas

Copy link
Copy Markdown
Member

@dotnet/runtime-infrastructure Could you please review as well?

Comment threadsrc/tests/Common/scripts/run-pmi-diffs.py
Comment threadeng/pipelines/common/global-build-job.yml
@am11

am11 commented Sep 22, 2022

Copy link
Copy Markdown
MemberAuthor

CI failure is #75767. It's ready to merge.

@jkotas
jkotas merged commit 3eacbaf into dotnet:mainSep 22, 2022
@ghostghost locked as resolved and limited conversation to collaborators Oct 23, 2022
@am11
am11 deleted the feature/ci/image-updates branch January 17, 2023 05:44
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Infrastructurecommunity-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@am11@jkotas@jkoritzinsky@hoyosjs
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Remove usages of Ubuntu 16.04 from pipelines by am11 · Pull Request #75513 · dotnet/runtime · GitHub
Skip to content

Remove usages of Ubuntu 16.04 from pipelines - #75513

Merged
jkotas merged 8 commits into
dotnet:mainfrom
am11:feature/ci/image-updates
Sep 22, 2022
Merged

Remove usages of Ubuntu 16.04 from pipelines#75513
jkotas merged 8 commits into
dotnet:mainfrom
am11:feature/ci/image-updates

Conversation

@am11

@am11am11 commented Sep 13, 2022

Copy link
Copy Markdown
Member

Ubuntu Xenial 16.04 has reached the end of its five year LTS window.

Summary:

  • Update to Ubuntu 18.04 VM or 22.04 host for alpine cross images. The main difference in cross images is the newer host compiler, otherwise rootfs has remained the same.
  • Simplify pipeline scripts; RuntimeOS is inferred except for linux-bionic.
  • Delete old jenkins scripts from src/tests/Common/scripts, which don't work. The blob URLs in those scripts return 404 and all deleted scripts have replacements.

@ghostghost added the community-contribution Indicates that the PR has been added by a community member label Sep 13, 2022
@ghost

Copy link
Copy Markdown

I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @dotnet/runtime-infrastructure
See info in area-owners.md if you want to be subscribed.

Issue Details

Ubuntu Xenial 16.04 has reached the end of its five year LTS window.

Summary:

  • Update to Ubuntu 18.04 VM or 22.04 host for alpine cross images. The main difference in cross images is the newer host compiler, otherwise rootfs has remains the same.
  • Simplify pipeline scripts; RuntimeOS is inferred except for linux-bionic.
  • Delete old jenkins scripts from src/tests/Common/scripts, which don't work. The blob URLs in those scripts return 404 and all deleted scripts have replacements.
Author:am11
Assignees:-
Labels:

area-Infrastructure, community-contribution

Milestone:-

@am11
am11force-pushed the feature/ci/image-updates branch 6 times, most recently from cc9bb3e to bc4f125CompareSeptember 14, 2022 06:10
@am11
am11force-pushed the feature/ci/image-updates branch 2 times, most recently from df466a2 to d693422CompareSeptember 14, 2022 11:07
@am11
am11force-pushed the feature/ci/image-updates branch from d693422 to 89a6456CompareSeptember 14, 2022 12:04
Comment threadsrc/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.targets Outdated
@am11
am11 marked this pull request as ready for review September 14, 2022 15:47
@am11

am11 commented Sep 14, 2022

Copy link
Copy Markdown
MemberAuthor

llvmaot failure is intermittent and unrelated (e.g. it failed on main branch in 2bc4f61 as well). I think the problem is it picks the incompatible helix machine for hwintrinsic tests. cc @vargaz

Comment threadeng/build.sh
*crossbuild=true*)
crossBuild=1
extraargs="$extraargs $1"
shift 1

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Handled /p:CrossBuild=true this way to support multiple property cases like ./build.sh /p:'RuntimeFlavor=coreclr;CrossBuild=true;Configuration=release'. Ideally, all cross-building CI legs should explicitly pass -cross (which appends /p:CrossBuild=true), but an explicit /p:CrossBuild=true should have the same effect.

@jkotasjkotas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thanks!

@am11

am11 commented Sep 15, 2022

Copy link
Copy Markdown
MemberAuthor

The latest binutils 2.39 linker turned out to be stricter than its predecessors:

 Generating native code
/usr/bin/aarch64-alpine-linux-musl-ld(0,0): error : (NETCORE_ENGINEERING_TELEMETRY=Build) /__w/1/s/artifacts/bin/coreclr/Linux.arm64.Debug/crossgen2/linux-musl-arm64/native/crossgen2
has a LOAD segment with RWX permissions

Refs:

We have couple of options:

@jkotas, which option do you suggest? (I think we must fix it or suppress it for consumers, regardless of the option selected for our CI leg, as consumer can have latest binutils in their PATH)

@jkotas

Copy link
Copy Markdown
Member

It would be useful to figure out which segment it is complaining about. It should not be hard to fix.

@am11

am11 commented Sep 15, 2022

Copy link
Copy Markdown
MemberAuthor

With retain,used lld is happy but ld is not. Since ld is default on linux distros, I have reverted it for now.

Ideally we should find a way to align them with retain,used, but I am not sure how that can be done with annotations; it might be that we need to resort to inline assembly for that.

@jkotas

Copy link
Copy Markdown
Member

More details about this preference are in #52244.

We do the page protection flipping around GS cookie in nativeaot too, so it sounds like we will have a problem with Linux arm64 with 64kB pages. The page protection flipping around GS cookie seems very fragile. I am wondering whether we should stop doing that, in nativeaot at least.

@am11

am11 commented Sep 16, 2022

Copy link
Copy Markdown
MemberAuthor

One problem is that we have hardcoded assumptions about page sizes:

#elif defined(HOST_ARM64)
#defineDATA_ALIGNMENT8
#ifndef OS_PAGE_SIZE
#ifdef HOST_OSX
#defineOS_PAGE_SIZE0x4000
#else
#defineOS_PAGE_SIZE0x1000
whereas we should instead be querying the page size from OS at run-time, as we do in GC (int getpagesize(void) from unistd.h). As it stands, 64K paged linux-arm64 kernels are currently not supported in NativeAOT regardless of the linker flavor.

System.Speech failures on Windows are unrelated (#75732).

@jkotas

Copy link
Copy Markdown
Member

@dotnet/runtime-infrastructure Could you please review as well?

Comment threadsrc/tests/Common/scripts/run-pmi-diffs.py
Comment threadeng/pipelines/common/global-build-job.yml
@am11

am11 commented Sep 22, 2022

Copy link
Copy Markdown
MemberAuthor

CI failure is #75767. It's ready to merge.

@jkotas
jkotas merged commit 3eacbaf into dotnet:mainSep 22, 2022
@ghostghost locked as resolved and limited conversation to collaborators Oct 23, 2022
@am11
am11 deleted the feature/ci/image-updates branch January 17, 2023 05:44
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Infrastructurecommunity-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@am11@jkotas@jkoritzinsky@hoyosjs
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Remove usages of Ubuntu 16.04 from pipelines by am11 · Pull Request #75513 · dotnet/runtime · GitHub
Skip to content

Remove usages of Ubuntu 16.04 from pipelines - #75513

Merged
jkotas merged 8 commits into
dotnet:mainfrom
am11:feature/ci/image-updates
Sep 22, 2022
Merged

Remove usages of Ubuntu 16.04 from pipelines#75513
jkotas merged 8 commits into
dotnet:mainfrom
am11:feature/ci/image-updates

Conversation

@am11

@am11am11 commented Sep 13, 2022

Copy link
Copy Markdown
Member

Ubuntu Xenial 16.04 has reached the end of its five year LTS window.

Summary:

  • Update to Ubuntu 18.04 VM or 22.04 host for alpine cross images. The main difference in cross images is the newer host compiler, otherwise rootfs has remained the same.
  • Simplify pipeline scripts; RuntimeOS is inferred except for linux-bionic.
  • Delete old jenkins scripts from src/tests/Common/scripts, which don't work. The blob URLs in those scripts return 404 and all deleted scripts have replacements.

@ghostghost added the community-contribution Indicates that the PR has been added by a community member label Sep 13, 2022
@ghost

Copy link
Copy Markdown

I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @dotnet/runtime-infrastructure
See info in area-owners.md if you want to be subscribed.

Issue Details

Ubuntu Xenial 16.04 has reached the end of its five year LTS window.

Summary:

  • Update to Ubuntu 18.04 VM or 22.04 host for alpine cross images. The main difference in cross images is the newer host compiler, otherwise rootfs has remains the same.
  • Simplify pipeline scripts; RuntimeOS is inferred except for linux-bionic.
  • Delete old jenkins scripts from src/tests/Common/scripts, which don't work. The blob URLs in those scripts return 404 and all deleted scripts have replacements.
Author:am11
Assignees:-
Labels:

area-Infrastructure, community-contribution

Milestone:-

@am11
am11force-pushed the feature/ci/image-updates branch 6 times, most recently from cc9bb3e to bc4f125CompareSeptember 14, 2022 06:10
@am11
am11force-pushed the feature/ci/image-updates branch 2 times, most recently from df466a2 to d693422CompareSeptember 14, 2022 11:07
@am11
am11force-pushed the feature/ci/image-updates branch from d693422 to 89a6456CompareSeptember 14, 2022 12:04
Comment threadsrc/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.targets Outdated
@am11
am11 marked this pull request as ready for review September 14, 2022 15:47
@am11

am11 commented Sep 14, 2022

Copy link
Copy Markdown
MemberAuthor

llvmaot failure is intermittent and unrelated (e.g. it failed on main branch in 2bc4f61 as well). I think the problem is it picks the incompatible helix machine for hwintrinsic tests. cc @vargaz

Comment threadeng/build.sh
*crossbuild=true*)
crossBuild=1
extraargs="$extraargs $1"
shift 1

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Handled /p:CrossBuild=true this way to support multiple property cases like ./build.sh /p:'RuntimeFlavor=coreclr;CrossBuild=true;Configuration=release'. Ideally, all cross-building CI legs should explicitly pass -cross (which appends /p:CrossBuild=true), but an explicit /p:CrossBuild=true should have the same effect.

@jkotasjkotas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thanks!

@am11

am11 commented Sep 15, 2022

Copy link
Copy Markdown
MemberAuthor

The latest binutils 2.39 linker turned out to be stricter than its predecessors:

 Generating native code
/usr/bin/aarch64-alpine-linux-musl-ld(0,0): error : (NETCORE_ENGINEERING_TELEMETRY=Build) /__w/1/s/artifacts/bin/coreclr/Linux.arm64.Debug/crossgen2/linux-musl-arm64/native/crossgen2
has a LOAD segment with RWX permissions

Refs:

We have couple of options:

@jkotas, which option do you suggest? (I think we must fix it or suppress it for consumers, regardless of the option selected for our CI leg, as consumer can have latest binutils in their PATH)

@jkotas

Copy link
Copy Markdown
Member

It would be useful to figure out which segment it is complaining about. It should not be hard to fix.

@am11

am11 commented Sep 15, 2022

Copy link
Copy Markdown
MemberAuthor

With retain,used lld is happy but ld is not. Since ld is default on linux distros, I have reverted it for now.

Ideally we should find a way to align them with retain,used, but I am not sure how that can be done with annotations; it might be that we need to resort to inline assembly for that.

@jkotas

Copy link
Copy Markdown
Member

More details about this preference are in #52244.

We do the page protection flipping around GS cookie in nativeaot too, so it sounds like we will have a problem with Linux arm64 with 64kB pages. The page protection flipping around GS cookie seems very fragile. I am wondering whether we should stop doing that, in nativeaot at least.

@am11

am11 commented Sep 16, 2022

Copy link
Copy Markdown
MemberAuthor

One problem is that we have hardcoded assumptions about page sizes:

#elif defined(HOST_ARM64)
#defineDATA_ALIGNMENT8
#ifndef OS_PAGE_SIZE
#ifdef HOST_OSX
#defineOS_PAGE_SIZE0x4000
#else
#defineOS_PAGE_SIZE0x1000
whereas we should instead be querying the page size from OS at run-time, as we do in GC (int getpagesize(void) from unistd.h). As it stands, 64K paged linux-arm64 kernels are currently not supported in NativeAOT regardless of the linker flavor.

System.Speech failures on Windows are unrelated (#75732).

@jkotas

Copy link
Copy Markdown
Member

@dotnet/runtime-infrastructure Could you please review as well?

Comment threadsrc/tests/Common/scripts/run-pmi-diffs.py
Comment threadeng/pipelines/common/global-build-job.yml
@am11

am11 commented Sep 22, 2022

Copy link
Copy Markdown
MemberAuthor

CI failure is #75767. It's ready to merge.

@jkotas
jkotas merged commit 3eacbaf into dotnet:mainSep 22, 2022
@ghostghost locked as resolved and limited conversation to collaborators Oct 23, 2022
@am11
am11 deleted the feature/ci/image-updates branch January 17, 2023 05:44
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Infrastructurecommunity-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@am11@jkotas@jkoritzinsky@hoyosjs
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Remove usages of Ubuntu 16.04 from pipelines by am11 · Pull Request #75513 · dotnet/runtime · GitHub
Skip to content

Remove usages of Ubuntu 16.04 from pipelines - #75513

Merged
jkotas merged 8 commits into
dotnet:mainfrom
am11:feature/ci/image-updates
Sep 22, 2022
Merged

Remove usages of Ubuntu 16.04 from pipelines#75513
jkotas merged 8 commits into
dotnet:mainfrom
am11:feature/ci/image-updates

Conversation

@am11

@am11am11 commented Sep 13, 2022

Copy link
Copy Markdown
Member

Ubuntu Xenial 16.04 has reached the end of its five year LTS window.

Summary:

  • Update to Ubuntu 18.04 VM or 22.04 host for alpine cross images. The main difference in cross images is the newer host compiler, otherwise rootfs has remained the same.
  • Simplify pipeline scripts; RuntimeOS is inferred except for linux-bionic.
  • Delete old jenkins scripts from src/tests/Common/scripts, which don't work. The blob URLs in those scripts return 404 and all deleted scripts have replacements.

@ghostghost added the community-contribution Indicates that the PR has been added by a community member label Sep 13, 2022
@ghost

Copy link
Copy Markdown

I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @dotnet/runtime-infrastructure
See info in area-owners.md if you want to be subscribed.

Issue Details

Ubuntu Xenial 16.04 has reached the end of its five year LTS window.

Summary:

  • Update to Ubuntu 18.04 VM or 22.04 host for alpine cross images. The main difference in cross images is the newer host compiler, otherwise rootfs has remains the same.
  • Simplify pipeline scripts; RuntimeOS is inferred except for linux-bionic.
  • Delete old jenkins scripts from src/tests/Common/scripts, which don't work. The blob URLs in those scripts return 404 and all deleted scripts have replacements.
Author:am11
Assignees:-
Labels:

area-Infrastructure, community-contribution

Milestone:-

@am11
am11force-pushed the feature/ci/image-updates branch 6 times, most recently from cc9bb3e to bc4f125CompareSeptember 14, 2022 06:10
@am11
am11force-pushed the feature/ci/image-updates branch 2 times, most recently from df466a2 to d693422CompareSeptember 14, 2022 11:07
@am11
am11force-pushed the feature/ci/image-updates branch from d693422 to 89a6456CompareSeptember 14, 2022 12:04
Comment threadsrc/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.targets Outdated
@am11
am11 marked this pull request as ready for review September 14, 2022 15:47
@am11

am11 commented Sep 14, 2022

Copy link
Copy Markdown
MemberAuthor

llvmaot failure is intermittent and unrelated (e.g. it failed on main branch in 2bc4f61 as well). I think the problem is it picks the incompatible helix machine for hwintrinsic tests. cc @vargaz

Comment threadeng/build.sh
*crossbuild=true*)
crossBuild=1
extraargs="$extraargs $1"
shift 1

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Handled /p:CrossBuild=true this way to support multiple property cases like ./build.sh /p:'RuntimeFlavor=coreclr;CrossBuild=true;Configuration=release'. Ideally, all cross-building CI legs should explicitly pass -cross (which appends /p:CrossBuild=true), but an explicit /p:CrossBuild=true should have the same effect.

@jkotasjkotas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thanks!

@am11

am11 commented Sep 15, 2022

Copy link
Copy Markdown
MemberAuthor

The latest binutils 2.39 linker turned out to be stricter than its predecessors:

 Generating native code
/usr/bin/aarch64-alpine-linux-musl-ld(0,0): error : (NETCORE_ENGINEERING_TELEMETRY=Build) /__w/1/s/artifacts/bin/coreclr/Linux.arm64.Debug/crossgen2/linux-musl-arm64/native/crossgen2
has a LOAD segment with RWX permissions

Refs:

We have couple of options:

@jkotas, which option do you suggest? (I think we must fix it or suppress it for consumers, regardless of the option selected for our CI leg, as consumer can have latest binutils in their PATH)

@jkotas

Copy link
Copy Markdown
Member

It would be useful to figure out which segment it is complaining about. It should not be hard to fix.

@am11

am11 commented Sep 15, 2022

Copy link
Copy Markdown
MemberAuthor

With retain,used lld is happy but ld is not. Since ld is default on linux distros, I have reverted it for now.

Ideally we should find a way to align them with retain,used, but I am not sure how that can be done with annotations; it might be that we need to resort to inline assembly for that.

@jkotas

Copy link
Copy Markdown
Member

More details about this preference are in #52244.

We do the page protection flipping around GS cookie in nativeaot too, so it sounds like we will have a problem with Linux arm64 with 64kB pages. The page protection flipping around GS cookie seems very fragile. I am wondering whether we should stop doing that, in nativeaot at least.

@am11

am11 commented Sep 16, 2022

Copy link
Copy Markdown
MemberAuthor

One problem is that we have hardcoded assumptions about page sizes:

#elif defined(HOST_ARM64)
#defineDATA_ALIGNMENT8
#ifndef OS_PAGE_SIZE
#ifdef HOST_OSX
#defineOS_PAGE_SIZE0x4000
#else
#defineOS_PAGE_SIZE0x1000
whereas we should instead be querying the page size from OS at run-time, as we do in GC (int getpagesize(void) from unistd.h). As it stands, 64K paged linux-arm64 kernels are currently not supported in NativeAOT regardless of the linker flavor.

System.Speech failures on Windows are unrelated (#75732).

@jkotas

Copy link
Copy Markdown
Member

@dotnet/runtime-infrastructure Could you please review as well?

Comment threadsrc/tests/Common/scripts/run-pmi-diffs.py
Comment threadeng/pipelines/common/global-build-job.yml
@am11

am11 commented Sep 22, 2022

Copy link
Copy Markdown
MemberAuthor

CI failure is #75767. It's ready to merge.

@jkotas
jkotas merged commit 3eacbaf into dotnet:mainSep 22, 2022
@ghostghost locked as resolved and limited conversation to collaborators Oct 23, 2022
@am11
am11 deleted the feature/ci/image-updates branch January 17, 2023 05:44
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Infrastructurecommunity-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@am11@jkotas@jkoritzinsky@hoyosjs
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Remove usages of Ubuntu 16.04 from pipelines by am11 · Pull Request #75513 · dotnet/runtime · GitHub
Skip to content

Remove usages of Ubuntu 16.04 from pipelines - #75513

Merged
jkotas merged 8 commits into
dotnet:mainfrom
am11:feature/ci/image-updates
Sep 22, 2022
Merged

Remove usages of Ubuntu 16.04 from pipelines#75513
jkotas merged 8 commits into
dotnet:mainfrom
am11:feature/ci/image-updates

Conversation

@am11

@am11am11 commented Sep 13, 2022

Copy link
Copy Markdown
Member

Ubuntu Xenial 16.04 has reached the end of its five year LTS window.

Summary:

  • Update to Ubuntu 18.04 VM or 22.04 host for alpine cross images. The main difference in cross images is the newer host compiler, otherwise rootfs has remained the same.
  • Simplify pipeline scripts; RuntimeOS is inferred except for linux-bionic.
  • Delete old jenkins scripts from src/tests/Common/scripts, which don't work. The blob URLs in those scripts return 404 and all deleted scripts have replacements.

@ghostghost added the community-contribution Indicates that the PR has been added by a community member label Sep 13, 2022
@ghost

Copy link
Copy Markdown

I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label.

@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @dotnet/runtime-infrastructure
See info in area-owners.md if you want to be subscribed.

Issue Details

Ubuntu Xenial 16.04 has reached the end of its five year LTS window.

Summary:

  • Update to Ubuntu 18.04 VM or 22.04 host for alpine cross images. The main difference in cross images is the newer host compiler, otherwise rootfs has remains the same.
  • Simplify pipeline scripts; RuntimeOS is inferred except for linux-bionic.
  • Delete old jenkins scripts from src/tests/Common/scripts, which don't work. The blob URLs in those scripts return 404 and all deleted scripts have replacements.
Author:am11
Assignees:-
Labels:

area-Infrastructure, community-contribution

Milestone:-

@am11
am11force-pushed the feature/ci/image-updates branch 6 times, most recently from cc9bb3e to bc4f125CompareSeptember 14, 2022 06:10
@am11
am11force-pushed the feature/ci/image-updates branch 2 times, most recently from df466a2 to d693422CompareSeptember 14, 2022 11:07
@am11
am11force-pushed the feature/ci/image-updates branch from d693422 to 89a6456CompareSeptember 14, 2022 12:04
Comment threadsrc/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.targets Outdated
@am11
am11 marked this pull request as ready for review September 14, 2022 15:47
@am11

am11 commented Sep 14, 2022

Copy link
Copy Markdown
MemberAuthor

llvmaot failure is intermittent and unrelated (e.g. it failed on main branch in 2bc4f61 as well). I think the problem is it picks the incompatible helix machine for hwintrinsic tests. cc @vargaz

Comment threadeng/build.sh
*crossbuild=true*)
crossBuild=1
extraargs="$extraargs $1"
shift 1

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Handled /p:CrossBuild=true this way to support multiple property cases like ./build.sh /p:'RuntimeFlavor=coreclr;CrossBuild=true;Configuration=release'. Ideally, all cross-building CI legs should explicitly pass -cross (which appends /p:CrossBuild=true), but an explicit /p:CrossBuild=true should have the same effect.

@jkotasjkotas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thanks!

@am11

am11 commented Sep 15, 2022

Copy link
Copy Markdown
MemberAuthor

The latest binutils 2.39 linker turned out to be stricter than its predecessors:

 Generating native code
/usr/bin/aarch64-alpine-linux-musl-ld(0,0): error : (NETCORE_ENGINEERING_TELEMETRY=Build) /__w/1/s/artifacts/bin/coreclr/Linux.arm64.Debug/crossgen2/linux-musl-arm64/native/crossgen2
has a LOAD segment with RWX permissions

Refs:

We have couple of options:

@jkotas, which option do you suggest? (I think we must fix it or suppress it for consumers, regardless of the option selected for our CI leg, as consumer can have latest binutils in their PATH)

@jkotas

Copy link
Copy Markdown
Member

It would be useful to figure out which segment it is complaining about. It should not be hard to fix.

@am11

am11 commented Sep 15, 2022

Copy link
Copy Markdown
MemberAuthor

With retain,used lld is happy but ld is not. Since ld is default on linux distros, I have reverted it for now.

Ideally we should find a way to align them with retain,used, but I am not sure how that can be done with annotations; it might be that we need to resort to inline assembly for that.

@jkotas

Copy link
Copy Markdown
Member

More details about this preference are in #52244.

We do the page protection flipping around GS cookie in nativeaot too, so it sounds like we will have a problem with Linux arm64 with 64kB pages. The page protection flipping around GS cookie seems very fragile. I am wondering whether we should stop doing that, in nativeaot at least.

@am11

am11 commented Sep 16, 2022

Copy link
Copy Markdown
MemberAuthor

One problem is that we have hardcoded assumptions about page sizes:

#elif defined(HOST_ARM64)
#defineDATA_ALIGNMENT8
#ifndef OS_PAGE_SIZE
#ifdef HOST_OSX
#defineOS_PAGE_SIZE0x4000
#else
#defineOS_PAGE_SIZE0x1000
whereas we should instead be querying the page size from OS at run-time, as we do in GC (int getpagesize(void) from unistd.h). As it stands, 64K paged linux-arm64 kernels are currently not supported in NativeAOT regardless of the linker flavor.

System.Speech failures on Windows are unrelated (#75732).

@jkotas

Copy link
Copy Markdown
Member

@dotnet/runtime-infrastructure Could you please review as well?

Comment threadsrc/tests/Common/scripts/run-pmi-diffs.py
Comment threadeng/pipelines/common/global-build-job.yml
@am11

am11 commented Sep 22, 2022

Copy link
Copy Markdown
MemberAuthor

CI failure is #75767. It's ready to merge.

@jkotas
jkotas merged commit 3eacbaf into dotnet:mainSep 22, 2022
@ghostghost locked as resolved and limited conversation to collaborators Oct 23, 2022
@am11
am11 deleted the feature/ci/image-updates branch January 17, 2023 05:44
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Infrastructurecommunity-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@am11@jkotas@jkoritzinsky@hoyosjs