Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build: turn on thin static archives #7957

Merged
merged 1 commit into from
Aug 9, 2016

Conversation

bnoordhuis
Copy link
Member

@bnoordhuis bnoordhuis commented Aug 3, 2016

Thin archives were disabled in 2012 as a workaround (IIRC) for obsolete
tooling on one of Joyent's platforms. The last binutils versions that
didn't support them was released in 2007 so I think it's safe to assume
we can drop support for that now.

Thin archives save space - it shrinks the size of PRODUCT_DIR by 30% -
and speed up the final linking step because it doesn't have to assemble
50 MB of static archives (twice! - first to create the archive, then to
copy it to PRODUCT_DIR). The archives are just 3.5 MB now and no longer
copied around.

CI: https://ci.nodejs.org/job/node-test-pull-request/3515/

@bnoordhuis bnoordhuis added the build Issues and PRs related to build files or the CI. label Aug 3, 2016
@mscdex
Copy link
Contributor

mscdex commented Aug 3, 2016

Looks like the SmartOS machines still have issues with the thin archives?

@bnoordhuis
Copy link
Member Author

You have got to be kidding me... I bet everyone at Joyent still has a mullet too.

Workaround added for crummy old smartos. New CI: https://ci.nodejs.org/job/node-test-pull-request/3516/

@evanlucas
Copy link
Contributor

I wonder if this will help the arm builds finish faster....that would be nice :]

@bnoordhuis are there any downsides to this change?

@bnoordhuis
Copy link
Member Author

You can't just copy the .a files around anymore and expect it to work, you need the .o files too now.

@jasnell
Copy link
Member

jasnell commented Aug 3, 2016

i'm +1 on this but the smartos bit is a concern. Can we reasonably do this on all other platforms and make that one an exception?

(the Joyent comment is a bit inappropriate fwiw)

@bnoordhuis
Copy link
Member Author

Can we reasonably do this on all other platforms and make that one an exception?

I did that six hours ago in the fix-up commit... did you look at the diff?

@jasnell
Copy link
Member

jasnell commented Aug 3, 2016

Missed the additional commit!

@bnoordhuis
Copy link
Member Author

CI is green. Can I get a LGTM or two?

@jbergstroem
Copy link
Member

Awesome! I completely forgot about this. LGTM.

@jasnell
Copy link
Member

jasnell commented Aug 5, 2016

LGTM

Thin archives were disabled in 2012 as a workaround (IIRC) for obsolete
tooling on one of Joyent's platforms.  The last binutils versions that
didn't support them was released in 2007 so I think it's safe to assume
we can drop support for that now - except on SmartOS, where the tooling
still has a distinctive vintage feel to it.

Thin archives save space - it shrinks the size of PRODUCT_DIR by 30% -
and speed up the final linking step because it doesn't have to assemble
50 MB of static archives (twice! - first to create the archive, then to
copy it to PRODUCT_DIR).  The archives are just 3.5 MB now and no longer
copied around.

PR-URL: nodejs#7957
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: James M Snell <jasnell@gmail.com>
@bnoordhuis bnoordhuis closed this Aug 9, 2016
@bnoordhuis bnoordhuis deleted the enable-thin-archives branch August 9, 2016 12:14
@bnoordhuis bnoordhuis merged commit e03a7b2 into nodejs:master Aug 9, 2016
@cjihrig cjihrig mentioned this pull request Aug 10, 2016
cjihrig pushed a commit that referenced this pull request Aug 10, 2016
Thin archives were disabled in 2012 as a workaround (IIRC) for obsolete
tooling on one of Joyent's platforms.  The last binutils versions that
didn't support them was released in 2007 so I think it's safe to assume
we can drop support for that now - except on SmartOS, where the tooling
still has a distinctive vintage feel to it.

Thin archives save space - it shrinks the size of PRODUCT_DIR by 30% -
and speed up the final linking step because it doesn't have to assemble
50 MB of static archives (twice! - first to create the archive, then to
copy it to PRODUCT_DIR).  The archives are just 3.5 MB now and no longer
copied around.

PR-URL: #7957
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: James M Snell <jasnell@gmail.com>
@cjihrig cjihrig mentioned this pull request Aug 11, 2016
@MylesBorins
Copy link
Contributor

@bnoordhuis I've backported this to v4.x

please let me know if it shouldn't land

MylesBorins pushed a commit that referenced this pull request Sep 30, 2016
Thin archives were disabled in 2012 as a workaround (IIRC) for obsolete
tooling on one of Joyent's platforms.  The last binutils versions that
didn't support them was released in 2007 so I think it's safe to assume
we can drop support for that now - except on SmartOS, where the tooling
still has a distinctive vintage feel to it.

Thin archives save space - it shrinks the size of PRODUCT_DIR by 30% -
and speed up the final linking step because it doesn't have to assemble
50 MB of static archives (twice! - first to create the archive, then to
copy it to PRODUCT_DIR).  The archives are just 3.5 MB now and no longer
copied around.

PR-URL: #7957
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: James M Snell <jasnell@gmail.com>
rvagg pushed a commit that referenced this pull request Oct 18, 2016
Thin archives were disabled in 2012 as a workaround (IIRC) for obsolete
tooling on one of Joyent's platforms.  The last binutils versions that
didn't support them was released in 2007 so I think it's safe to assume
we can drop support for that now - except on SmartOS, where the tooling
still has a distinctive vintage feel to it.

Thin archives save space - it shrinks the size of PRODUCT_DIR by 30% -
and speed up the final linking step because it doesn't have to assemble
50 MB of static archives (twice! - first to create the archive, then to
copy it to PRODUCT_DIR).  The archives are just 3.5 MB now and no longer
copied around.

PR-URL: #7957
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: James M Snell <jasnell@gmail.com>
MylesBorins pushed a commit that referenced this pull request Oct 26, 2016
Thin archives were disabled in 2012 as a workaround (IIRC) for obsolete
tooling on one of Joyent's platforms.  The last binutils versions that
didn't support them was released in 2007 so I think it's safe to assume
we can drop support for that now - except on SmartOS, where the tooling
still has a distinctive vintage feel to it.

Thin archives save space - it shrinks the size of PRODUCT_DIR by 30% -
and speed up the final linking step because it doesn't have to assemble
50 MB of static archives (twice! - first to create the archive, then to
copy it to PRODUCT_DIR).  The archives are just 3.5 MB now and no longer
copied around.

PR-URL: #7957
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: James M Snell <jasnell@gmail.com>
@MylesBorins MylesBorins mentioned this pull request Oct 26, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Issues and PRs related to build files or the CI.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants