From owner-freebsd-testing@freebsd.org Sun Jul 12 06:50:10 2015 Return-Path: Delivered-To: freebsd-testing@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B7CE4999829 for ; Sun, 12 Jul 2015 06:50:10 +0000 (UTC) (envelope-from mattdillonbsd@gmail.com) Received: from mail-yk0-x22c.google.com (mail-yk0-x22c.google.com [IPv6:2607:f8b0:4002:c07::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 74F0C1BA; Sun, 12 Jul 2015 06:50:10 +0000 (UTC) (envelope-from mattdillonbsd@gmail.com) Received: by ykax123 with SMTP id x123so45663060yka.1; Sat, 11 Jul 2015 23:50:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=nEEqNZj2ijddMjsZywuy6qxmemEbmf7eGTPMhnuQUVU=; b=M0vzyPIAQ7QnfvCXw+T9qAbxmxbj0kBU+n/wAPxWbiaCvZ/41hMxrSNGVRFpNZpIS8 FHSfe6UHTzcRKSh+c81NWnGYZ10fvCm8wyvLKvQRvg/4Mx5DgP4F/bbmhQfdkl/Dx+b9 2GyQid6KaQ4apXD4xkZYf/31Y/ikkcqAKGunjVHqvQzqGwurBkSh2H/V300WCiRE7OD1 Ys6JEoEpaOFp86sZsKM11shcLmCvN2iCkditp0OvYTV0zAJFMRVb62XNnlwNqPVegI1x JcHTJGm6x5JjwrTPO98b3sC2kPI+GmxtXMpi74eHnV8fpnrtfuQ6Xter7jUf1izqrBgJ ncfg== MIME-Version: 1.0 X-Received: by 10.129.4.20 with SMTP id 20mr15093535ywe.36.1436683809731; Sat, 11 Jul 2015 23:50:09 -0700 (PDT) Sender: mattdillonbsd@gmail.com Received: by 10.129.52.75 with HTTP; Sat, 11 Jul 2015 23:50:09 -0700 (PDT) In-Reply-To: References: Date: Sat, 11 Jul 2015 23:50:09 -0700 X-Google-Sender-Auth: uKT9ltx6-bpjJSMUeyc7ZK7p2_U Message-ID: Subject: Re: Need help reducing gcc compiler warnings in BSD From: Matthew Dillon To: Craig Rodrigues Cc: "users@dragonflybsd.org" , "freebsd-testing@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: freebsd-testing@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Testing on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Jul 2015 06:50:10 -0000 On gcc-4.9 and other gcc related bloat in the boot code, you need to experiment with the optimization options. Some optimizations can make code smaller, some can make it bigger. Sometimes by a lot. We've hit the boot2 limit ourselves a few times though not in a long while so I don't remember the precise changes that were made. One thing that can be helpful is to use objdump -d on boot2.out (somewhere in /usr/obj when you build the boot code), comparing the output before and after to track down where the size changes are centered. boot2 is relatively small code so a side-by-side comparison in two xterms is doable. diff won't work well in this case. -Matt On Sat, Jul 11, 2015 at 11:44 PM, Matthew Dillon wrote: > Well, the boot code is a bit of a crap-shoot, because a lot of it is > related to working around bugs in various BIOSes rather than actual bug > fixes in the boot code itself. Changes can sometimes break one platform > while fixing another. So wholesale copying of boot work in either > direction without a huge amount of testing will meet with a great deal of > resistance. > > -Matt > > On Sat, Jul 11, 2015 at 7:29 PM, Craig Rodrigues > wrote: > >> Hi, >> >> Yes, I agree that formal collaboration is overkill for this stuff, but I >> thought I would inform >> the DragonFlyBSD community, because I have been benefiting by taking good >> fixes >> done to the DragonFlyBSD tree. One advantage of the Jenkins build is >> that it enumerates >> the compiler warnings in a table, so it is easy to track over time if >> compiler warnings increase or decrease >> as code changes are made, so DragonFlyBSD users can monitor that if they >> wish. >> >> One item I could use help with is that gcc 4.9 compiles FreeBSD's >> i386/boot2 to >> greater than 8192 bytes, so it is unusable: >> https://lists.freebsd.org/pipermail/freebsd-testing/2015-March/000887.html >> >> I see that DragonFlyBSD has changed a lot of the boot code compared to >> FreeBSD. >> I'm not familiar with all the changes. Are there fixes done in this area >> for DragonFlyBSD >> that could be pushed back to FreeBSD? >> >> -- >> Craig >> >> On Fri, Jul 10, 2015 at 3:56 PM, Matthew Dillon >> wrote: >> >>> I'm not sure the work load is high enough to require a formal >>> collaboration. We just fix things as they come up for the most part. >>> Sascha has been doing WARNS related cleanups on the codebase and slowly >>> bumping up the WARNS level for various parts of the build for years, which >>> reduces problems going forwards. It's mostly a matter of being proactive >>> about it. >>> >>> -Matt >>> >>> >>> On Fri, Jul 10, 2015 at 7:52 AM, Craig Rodrigues >>> wrote: >>> >>>> Hi, >>>> >>>> I set up this Jenkins job which builds FreeBSD with gcc 4.9, and reports >>>> all the compiler warnings here: >>>> >>>> >>>> https://jenkins.freebsd.org/job/FreeBSD_HEAD_amd64_gcc4.9/177/warnings17Result/ >>>> >>>> I have been working with other people like Marcelo Araujo to >>>> reduce the gcc compiler warnings on FreeBSD, even though >>>> the default system compiler for FreeBSD is clang. >>>> I have noticed that a lot of fixes to the problems have been down >>>> in DragonFlyBSD. I have imported some of these fixes, especially ones >>>> done by >>>> Sascha Wildner, such as this one: >>>> >>>> https://lists.freebsd.org/pipermail/svn-src-head/2015-May/072562.html >>>> >>>> Is there a way that we can collaborate across the FreeBSD and >>>> DragonFlyBSD >>>> projects to reduce gcc compiler warnings? That it would be quite nice. >>>> It would make code easier to share, and improve the code overall. >>>> >>>> Thanks. >>>> -- >>>> Craig >>>> >>>> >>> >> >