dragonfly.git
5 years agolibhammer - Add an overlooked function that releases snaps
Antonio Huete Jimenez [Thu, 19 Feb 2015 13:14:29 +0000 (14:14 +0100)]
libhammer - Add an overlooked function that releases snaps

- Add a function to release resources allocated for libhammer_pfs_get_snapshots.
- Release snapshot resources when releasing the fsinfo struct.

5 years agokernel/wlan: Fix up the MAC address printing and add back __printflike()s.
Sascha Wildner [Thu, 19 Feb 2015 02:18:11 +0000 (03:18 +0100)]
kernel/wlan: Fix up the MAC address printing and add back __printflike()s.

In the recent wlan, iwn and ath upgrades, porting this properly was hacked
around by removing the __printflike()s because DragonFly has no support
for %D (neither in GCC nor in kprintf()). This is wrong because even
though it silences the warning, it will still not print MAC addresses
correctly. So bring all that back.

Also update the wlan's README.DRAGONFLY with some information about how
to port this properly.

5 years agokernel: Move us to using M_NOWAIT and M_WAITOK for mbuf functions.
Sascha Wildner [Thu, 19 Feb 2015 00:16:23 +0000 (01:16 +0100)]
kernel: Move us to using M_NOWAIT and M_WAITOK for mbuf functions.

The main reason is that our having to use the MB_WAIT and MB_DONTWAIT
flags was a recurring issue when porting drivers from FreeBSD because
it tended to get forgotten and the code would compile anyway with the
wrong constants. And since MB_WAIT and MB_DONTWAIT ended up as ocflags
for an objcache_get() or objcache_reclaimlist call (which use M_WAITOK
and M_NOWAIT), it was just one big converting back and forth with some
sanitization in between.

This commit allows M_* again for the mbuf functions and keeps the
sanitizing as it was before: when M_WAITOK is among the passed flags,
objcache functions will be called with M_WAITOK and when it is absent,
they will be called with M_NOWAIT. All other flags are scrubbed by the
MB_OCFLAG() macro which does the same as the former MBTOM().

Approved-by: dillon
5 years agosbin/hammer: ignore negative length for history dump
Tomohiro Kusumi [Wed, 18 Feb 2015 17:50:33 +0000 (02:50 +0900)]
sbin/hammer: ignore negative length for history dump

- Use default value 32 when a negative value was given for
  history dump.

5 years agosbin/hammer: check strtol()/strtoll() results to avoid irrelevant history
Tomohiro Kusumi [Wed, 18 Feb 2015 17:07:03 +0000 (02:07 +0900)]
sbin/hammer: check strtol()/strtoll() results to avoid irrelevant history
queries

- Check errno for possible overflow/underflow by strtol()/strtoll() in
  order to avoid ioctl with irrelevant offset/length.

- Examples
  # hammer -vvv history@11111111111111111111111111111111,111 ./out
  Result too large: @11111111111111111111111111111111
  # hammer -vvv history@111,11111111111111111111111111111111 ./out
  Result too large: ,11111111111111111111111111111111
  # hammer -vvv history@-11111111111111111111111111111111,111 ./out
  Result too large: @-11111111111111111111111111111111
  # hammer -vvv history@111,-11111111111111111111111111111111 ./out
  Result too large: ,-11111111111111111111111111111111

5 years agosbin/hammer: trivial cleanup
Tomohiro Kusumi [Wed, 18 Feb 2015 15:16:54 +0000 (00:16 +0900)]
sbin/hammer: trivial cleanup

- commit 00b46268 reverting 417cb1b1 brought back unnecessary blank line
  at the end of the file that was once removed in 417cb1b1, so remove it
  again.

5 years agosbin/hammer: close file descriptor on history iteration
Tomohiro Kusumi [Wed, 18 Feb 2015 15:11:15 +0000 (00:11 +0900)]
sbin/hammer: close file descriptor on history iteration

- Make hammer history command close(fd) each time it opens path@@0x`tid`
  for hist.count times.

5 years agosbin/hammer: trivial coding style fix
Tomohiro Kusumi [Wed, 18 Feb 2015 14:52:16 +0000 (23:52 +0900)]
sbin/hammer: trivial coding style fix

- Trivial coding style fix to a commit 24dd5805.

- Add parenthesis as hammer code mostly prefers "return(retval);"
  to "return retval;".

5 years agolibhammer - Preparation for snapshot handling & fixes
Antonio Huete Jimenez [Tue, 10 Feb 2015 14:32:15 +0000 (15:32 +0100)]
libhammer - Preparation for snapshot handling & fixes

Trivial changes:
- Function renaming to actually match what they are
  describing.
- Clearer variable naming.

Additions:
- Structures to hold snapshot data.
- Functions to retrieve snapshots from metadata for PFSes.
- A file for version compatibility functions.
- A function to return the canonical access path of a
  PFS which is suitable for opening.
- Wrappers to operate per PFS snapshot list.

Changes & fixes:
- Use the new functions to gather all snaps of a PFS.
- Adapt hammer program for the changes.
- Check before free'ing in libhammer_free_fsinfo()
- Display the number of snapshots for unmounted PFSes.

Still missing:
- Manpages changes.

5 years agosys/kern: Adjust some function declaration vs. definition mismatches.
Sascha Wildner [Wed, 18 Feb 2015 14:46:58 +0000 (15:46 +0100)]
sys/kern: Adjust some function declaration vs. definition mismatches.

All these functions are declared static already, so no functional change.

5 years agovinum(8): Remove unused macro.
Sascha Wildner [Wed, 18 Feb 2015 14:14:01 +0000 (15:14 +0100)]
vinum(8): Remove unused macro.

If it is ever needed, it can be done with offsetof().

5 years agonatacontrol(8): Break line better and reduce parentheses.
Sascha Wildner [Wed, 18 Feb 2015 11:55:07 +0000 (12:55 +0100)]
natacontrol(8): Break line better and reduce parentheses.

5 years agoAdd cryptodev to our default configuration file.
Sascha Wildner [Wed, 18 Feb 2015 10:40:20 +0000 (11:40 +0100)]
Add cryptodev to our default configuration file.

While here, change wrong 'pseudo-device' to 'device'.

5 years agocontrib/opie: Sync with FreeBSD, but not much to see here.
Sascha Wildner [Wed, 18 Feb 2015 10:29:13 +0000 (11:29 +0100)]
contrib/opie: Sync with FreeBSD, but not much to see here.

A couple of bugfixes:

* Fix the overflow check in challenge handling (off by 1).

* Store all hashes in little endian format before folding to 64 bits, per
  RFC 2289. SHA1 code is big endian, so a bswap32() is needed.

* Create /etc/opiekeys with 0600, not 0644.

* Increase OPIE_HASHNAME_MAX for SHA1.

* Fix a buffer overflow in an unused file.

* Remove two unused (and empty) files.

The rest is just cosmetics.

5 years agoacpi/cstate: Fix comment
Sepherosa Ziehau [Wed, 18 Feb 2015 02:47:35 +0000 (10:47 +0800)]
acpi/cstate: Fix comment

5 years agocrunchide(1): fix offset for x86_64, restores WORLD_LDVER
John Marino [Mon, 16 Feb 2015 19:08:17 +0000 (20:08 +0100)]
crunchide(1): fix offset for x86_64, restores WORLD_LDVER

The e_shoff offset for x86_64 is 40, not 44.  FreeBSD figured this out
in January.  The gold linker figured out there was a problem with the
crunch binaries when I tried WORLD_LDVER=ld.gold and it broke on initrd.
The ld.bfd linker didn't squawk.  With the FreeBSD patch, buildworld
completes using the gold linker once again.

While here, tidy up a bit.

5 years agokeyserv(8): Fix sizeof() of a pointer.
Sascha Wildner [Mon, 16 Feb 2015 19:12:56 +0000 (20:12 +0100)]
keyserv(8): Fix sizeof() of a pointer.

Commit 748a243b13dd295c04c9e06923a801157f6943e5 tried to fix this, but
did it wrongly, because xdrproc_t is a function pointer type and the
sizeof will still give 8.

The correct way is to use keybuf which is the type and has the correct
size (aka HEXKEYBYTES). It is done like this in key_set_1_svc_prog()
already.

5 years agokeyserv(8): Raise WARNS to 2 and fix warnings.
Sascha Wildner [Mon, 16 Feb 2015 18:40:35 +0000 (19:40 +0100)]
keyserv(8): Raise WARNS to 2 and fix warnings.

5 years agoRevert "hammer - Fix 'history' directive"
Antonio Huete Jimenez [Mon, 16 Feb 2015 15:02:59 +0000 (16:02 +0100)]
Revert "hammer - Fix 'history' directive"

This reverts commit 417cb1b104fd140d4e31775d8873ad473216f7e4 which
broke the behaviour described in the manpage.

Spotted-by: tkusumi
5 years agounbreak world, take 2
John Marino [Mon, 16 Feb 2015 14:38:24 +0000 (15:38 +0100)]
unbreak world, take 2

The previous style works in the world makefiles but not here.
Try to fix the unbreak by checking if .MAKE.BUILT.BY is defined before
attempting to use it.

5 years agounbreak world
John Marino [Mon, 16 Feb 2015 14:32:03 +0000 (15:32 +0100)]
unbreak world

Upgrading from a world with the older bmake that didn't know
.MAKE.BUILT.BY results in a broken world, immediately.  Change the check
from "&&" to two separate checks to avoid the malformed condition.

5 years agosys.mk: Add _GLIBCXX_USE_CXX11_ABI=0 definition in some cases
John Marino [Mon, 16 Feb 2015 13:18:38 +0000 (14:18 +0100)]
sys.mk: Add _GLIBCXX_USE_CXX11_ABI=0 definition in some cases

When the world is built by gcc47, and sys.mk isn't being used to build
the system, the CXXFLAGS will have -D_GLIBCXX_USE_CXX11_ABI=0 added to
it to force gcc50 to use the c++ ABI that gcc47 used when building the
system libraries.

If the world was built with gcc50, the system libraries were built
against the new c++ ABI so this flag would not be added in that case.

Due to new SYSBUILD definition in Makefile.inc1, this flag is never
added during the build of the world.

5 years agomemtemp/e5: Don't attach if CLTT is not set by BIOS in chn_temp_cfg
Sepherosa Ziehau [Mon, 16 Feb 2015 12:56:28 +0000 (20:56 +0800)]
memtemp/e5: Don't attach if CLTT is not set by BIOS in chn_temp_cfg

Tested-by: mneumann@
5 years agomake(1): Create custom variable .MAKE.BUILT.BY
John Marino [Mon, 16 Feb 2015 10:57:04 +0000 (11:57 +0100)]
make(1): Create custom variable .MAKE.BUILT.BY

The value of .MAKE.BUILT.BY is normally either "gcc47" or "gcc50"
depending on which base compiler built the DragonFly world.  It could
also be any valid CCVER for a dports compiler such as "clang35".

This capability is needed to handle the c++ ABI change that has been
introduced by gcc50.  The problem hits when gcc50 is used to build when
the system libraries have been built by gcc47.  The sys.mk file will
need .MAKE.BUILT.BY to adjust c++ flags appropriately.

5 years agomemtemp/e5: Setup hiwat and lowat before sensor task register.
Sepherosa Ziehau [Mon, 16 Feb 2015 07:13:22 +0000 (15:13 +0800)]
memtemp/e5: Setup hiwat and lowat before sensor task register.

5 years agomemtemp/e5: Send devctl notify, if DIMM is too hot, and set sensor status
Sepherosa Ziehau [Sat, 14 Feb 2015 14:47:02 +0000 (22:47 +0800)]
memtemp/e5: Send devctl notify, if DIMM is too hot, and set sensor status

- There is no need to save DIMM external id in dimm softc; use a stack
  variable instead.
- White space cleanup.

5 years agosys/vfs/hammer: minor zone cleanup
Tomohiro Kusumi [Sun, 15 Feb 2015 11:44:39 +0000 (20:44 +0900)]
sys/vfs/hammer: minor zone cleanup

- hammer_generate_undo() takes either zone 1 or zone 2 address
  (hammer generates undos for both volume metadata and buffers).

5 years agogcc50/libstdc++: Use generated symbol map instead
John Marino [Sun, 15 Feb 2015 10:48:54 +0000 (11:48 +0100)]
gcc50/libstdc++: Use generated symbol map instead

For both gcc47 and gcc50, we've been using pregenerate symbol map for
libstdc++ due to the apparently complexity of generating it.  That's
already come back to bite on gcc50 as several symbols were modified and
added in the last couple of weeks.  It was time to bite the bullet and
figure out how to generate the symbol map.  It turns out that it really
wasn't that hard.

This *should* fix some dports errors (tbc).

5 years agoUpdate the pciconf(8) database.
Sascha Wildner [Sun, 15 Feb 2015 07:05:53 +0000 (08:05 +0100)]
Update the pciconf(8) database.

February 14, 2015 snapshot from http://pciids.sourceforge.net/

5 years agosys/vfs/hammer2: fix typos
Tomohiro Kusumi [Sat, 14 Feb 2015 18:27:25 +0000 (03:27 +0900)]
sys/vfs/hammer2: fix typos

- Fix trivial typos in comments.

5 years agosbin/hammer: cleanups
Tomohiro Kusumi [Tue, 3 Feb 2015 20:35:56 +0000 (05:35 +0900)]
sbin/hammer: cleanups

- Minor cleanups in addition to 24dd5805.

- hunk1 - no need to dereference indirect pointer **bufferp via direct
  pointer *buffer in here anymore.
- hunk2 - all the rest of the code use **bufferp instead of **bufp.

- from Submit #2783

5 years agosbin/hammer: add get_ondisk()
Tomohiro Kusumi [Tue, 3 Feb 2015 20:31:46 +0000 (05:31 +0900)]
sbin/hammer: add get_ondisk()

- Cleanup get_buffer_data() and get_node() using a new inline function
  get_ondisk(). These two actually do the same thing except for the way
  they release an existing buffer (--ref and eventually free it).

- from Submit #2783

5 years agosystat - Improve pftop output
Matthew Dillon [Sat, 14 Feb 2015 19:19:46 +0000 (11:19 -0800)]
systat - Improve pftop output

* Fix bugs where ICMP states were display bandwidth as '<huge>' .

* Fix bugs where the RB tree compare code would sometimes collapse
  distinct states, creating confusion.

* Greatly improve readability by reformatting addresses and ports,
  in particular truncating IPV6 addresses to fit better.

* Reduce jumping around of display elements as bandwidth values change.
  Instead of sorting by the current bandwidth the display is sorted
  by the 1/8 decay bandwidth.

5 years agodrm: Add linux/ctype.h
François Tigeot [Sat, 14 Feb 2015 08:08:19 +0000 (09:08 +0100)]
drm: Add linux/ctype.h

5 years agodrm: Add DMI_MATCH and DMI_EXACT_MATCH
François Tigeot [Sat, 14 Feb 2015 07:59:29 +0000 (08:59 +0100)]
drm: Add DMI_MATCH and DMI_EXACT_MATCH

Obtained-from: OpenBSD

5 years agodrm: Update linux/kernel.h
François Tigeot [Sat, 14 Feb 2015 07:52:48 +0000 (08:52 +0100)]
drm: Update linux/kernel.h

* Add clamp_t and DIV_ROUND_UP_ULL(), both obtained from NetBSD

* Add WARN_ON_SMP()

* Add max3()

5 years agodrm: Add get_seconds()
François Tigeot [Sat, 14 Feb 2015 07:41:44 +0000 (08:41 +0100)]
drm: Add get_seconds()

5 years agodrm: Add linux/string.h
François Tigeot [Sat, 14 Feb 2015 07:33:25 +0000 (08:33 +0100)]
drm: Add linux/string.h

Obtained-from: FreeBSD's OFED subsystem

5 years agodrm: Add linux/printk.h
François Tigeot [Sat, 14 Feb 2015 07:25:40 +0000 (08:25 +0100)]
drm: Add linux/printk.h

5 years agodrm: Add linux/spinlock.h
François Tigeot [Sat, 14 Feb 2015 07:24:52 +0000 (08:24 +0100)]
drm: Add linux/spinlock.h

5 years agogcc50: use DF stddef.h by adding max_align_t
John Marino [Fri, 13 Feb 2015 22:09:44 +0000 (23:09 +0100)]
gcc50: use DF stddef.h by adding max_align_t

C11 and C++11 need the max_align_t type definition.  In order to get it,
the gcc version was installed at /usr/libdata/gcc50/stddef.h.  We'd
rather the base gcc use only system-provided headers, so the max_align_t
structure has been added to /usr/include/stddef.h

patch-from: swildner

5 years agodrm: Update linux/workqueue.h
François Tigeot [Fri, 13 Feb 2015 21:47:16 +0000 (22:47 +0100)]
drm: Update linux/workqueue.h

Obtained-from: FreeBSD's OFED subsystem

5 years agodrm: Update various Linux headers
François Tigeot [Fri, 13 Feb 2015 21:40:59 +0000 (22:40 +0100)]
drm: Update various Linux headers

5 years agochflagsat: fix typo in prototype
Joris Giovannangeli [Fri, 13 Feb 2015 19:37:33 +0000 (20:37 +0100)]
chflagsat: fix typo in prototype

5 years agoadd chflagsat system call
Joris Giovannangeli [Fri, 13 Feb 2015 19:27:28 +0000 (20:27 +0100)]
add chflagsat system call

5 years agonrelease - Revive the gui build
Michael Neumann [Fri, 13 Feb 2015 16:05:52 +0000 (17:05 +0100)]
nrelease - Revive the gui build

Pkgsrc is long gone. Update Makefile to use dports.

5 years agoAdd option to override dports git host
Michael Neumann [Fri, 13 Feb 2015 15:14:31 +0000 (16:14 +0100)]
Add option to override dports git host

By specifying GITHOST_DPORTS you can override the default git host for
fetching the dports.git repository:

  cd /usr && make dports-create GITHOST_DPORTS=localhost

5 years agoecc/memtemp/e5: Correct E5 v3 DID <-> SLOT
Michael Neumann [Fri, 13 Feb 2015 11:28:16 +0000 (12:28 +0100)]
ecc/memtemp/e5: Correct E5 v3 DID <-> SLOT

Revert the change in cb830af (revert PCI slot numbers) and instead
modify the PCI device ids. Channel 0/1 was swapped with channel 2/3.

5 years agogcc50: Switch to SVN over weekly snapshots for latest
John Marino [Fri, 13 Feb 2015 08:34:24 +0000 (09:34 +0100)]
gcc50: Switch to SVN over weekly snapshots for latest

A dports bulk run revealed at least 3 major issues, all of which have
already been fixed upstream.  Two were found in 8 February snapshot, but
the third still hasn't been release.  Since the snapshots are just
the packaged Subversion repo without the .svn directory, I'm switching
over to SVN directly until the prerelease.

With here, disable extra diagnostic checks which slow the compiler down
considerably.

5 years agoMerge branch 'vendor/GCC50'
John Marino [Fri, 13 Feb 2015 10:07:46 +0000 (11:07 +0100)]
Merge branch 'vendor/GCC50'

5 years agoUpdate gcc-50 to SVN version 220677
John Marino [Fri, 13 Feb 2015 08:18:26 +0000 (09:18 +0100)]
Update gcc-50 to SVN version 220677

Last Changed Date: 2015-02-13 08:56:14 +0100 (Fri, 13 Feb 2015)

5 years agoecc/e5: Reorganize bootverbose prints a little bit
Sepherosa Ziehau [Fri, 13 Feb 2015 09:16:47 +0000 (17:16 +0800)]
ecc/e5: Reorganize bootverbose prints a little bit

5 years agoecc/memtemp: Add support for Intel E5 v3
Sepherosa Ziehau [Fri, 13 Feb 2015 09:12:55 +0000 (17:12 +0800)]
ecc/memtemp: Add support for Intel E5 v3

5 years agomemtemp: Add support for Intel Core Haswell and E3 v3 cpus
Sepherosa Ziehau [Thu, 12 Feb 2015 13:25:08 +0000 (21:25 +0800)]
memtemp: Add support for Intel Core Haswell and E3 v3 cpus

Tested-by: dillon@ (no sensors available though)
5 years agoinstaller: Don't create a separate /usr pfs
François Tigeot [Thu, 12 Feb 2015 20:45:04 +0000 (21:45 +0100)]
installer: Don't create a separate /usr pfs

* /usr as a separate filesystem from / doesn't really make sense
  anymore in this day and age. Both / and /usr binaries are dynamically
  linked and belong to the same DragonFly base system.

* What's more, it's dangerous. With a separate /usr filesystem, the
  rescue static binaries in /usr/share/initrd can't be accessed without
  /usr mounted and in some situations /usr can't be mounted anymore with
  the regular mount* binaries...

5 years agogcc50: Look for ld-elf.so.2 on the root slice always
John Marino [Thu, 12 Feb 2015 17:50:18 +0000 (18:50 +0100)]
gcc50: Look for ld-elf.so.2 on the root slice always

A couple of us could not could not even get the shell after rebuilding
world with the new compiler.  The problem was that several programs such
as sh, cd, mount*, etc need to run before /usr is mounted when /usr is on
a different slice (those programs are dynamically linked these days)  I
didn't consider this when I decided to leave the interpreter at the default
value which is "/usr/libexec/ld-elf.so.2".  That file is now symlink to
/libexec/ld-elf.so.2.  sh, cd, etc, could not access the dynamic linker
because the mount command failed due to also needing the dynamic linker.

Let's rectify that bad decision now before any other systems get badly
messed up.

5 years agotest commit
Tomohiro Kusumi [Thu, 12 Feb 2015 12:04:19 +0000 (21:04 +0900)]
test commit

5 years agomake upgrade: Expand the list a bit for gcc44 removal.
Sascha Wildner [Thu, 12 Feb 2015 10:52:50 +0000 (11:52 +0100)]
make upgrade: Expand the list a bit for gcc44 removal.

5 years agoecc/e3: Split it into two drivers, coremctl(4) and ecc(4)
Sepherosa Ziehau [Wed, 11 Feb 2015 09:06:17 +0000 (17:06 +0800)]
ecc/e3: Split it into two drivers, coremctl(4) and ecc(4)

coremctl(4), which maps the MCHBAR, is now the parent of ecc(4) for
Intel E3 cpus.  This paves way to add Intel Core/E3 support to
memtemp(4).

Tested-by: dillon@ on i3/Haswell and E3/v3
5 years agoemx: Allow 2 TX rings for i217 and i218
Sepherosa Ziehau [Thu, 12 Feb 2015 08:48:33 +0000 (16:48 +0800)]
emx: Allow 2 TX rings for i217 and i218

Tested-by: dillon@ on i217
5 years agogcc50/stddef.h: Remove __FreeBSD only conditions
John Marino [Thu, 12 Feb 2015 08:12:44 +0000 (09:12 +0100)]
gcc50/stddef.h: Remove __FreeBSD only conditions

In a very special case of DragonFly masquerading as FreeBSD within dports,
using the stock stddef.h that comes with gcc always results in failure.

The masquerading is done by passing __FreeBSD definition through cflags,
and this causes the compiler to attempt to include headers that do not
exist on DragonFly.  The gcc compilers in dports already have this fix.

This commit simply removes all clauses that pertain to FreeBSD and not
DragonFly.

5 years agoRemoval of unused gcc 4.4 sources and makefiles
John Marino [Wed, 11 Feb 2015 20:11:37 +0000 (21:11 +0100)]
Removal of unused gcc 4.4 sources and makefiles

It's been confirmed that a gcc50-built world and kernel boots and
functions as expected.  With that good news, it is safe to remove
the gcc 4.4 sources and makefiles.  It wasn't building and this will
make the cloning of a shallow repo faster.

5 years agogcc50/csu: Skip depends step to avoid possible race
John Marino [Wed, 11 Feb 2015 19:40:37 +0000 (20:40 +0100)]
gcc50/csu: Skip depends step to avoid possible race

I've witnessed buildworld break once on muscles at gcc50/csu, on the
depends step.  I can reproduce the error manually by doing:

  > cd gnu/lib/gcc50/csu
  > wmake clean cleandepend
  > wmake depend

It fails to locate insn-constants.h which should be avaiable due to
and include flag.  The depends is just checking if all the headers are
in place.  Skipping the depends step may prevent this breakage.  I have
successfully built world with this patch so it doesn't do harm.

5 years agogcc50: Build with no-avx like gcc47
John Marino [Wed, 11 Feb 2015 17:56:45 +0000 (18:56 +0100)]
gcc50: Build with no-avx like gcc47

This check will also match newer gcc compilers from dports.

Requested-by: zrj (irc)

5 years agoUPDATING: Initial entry discussing gcc 4.4 & 5.0
John Marino [Wed, 11 Feb 2015 13:25:43 +0000 (14:25 +0100)]
UPDATING: Initial entry discussing gcc 4.4 & 5.0

This entry may need updating before release, particularly if the release
version of GCC 5.0 is brought in and especially if gcc 5.0 becomes
designated as the primary compiler.

5 years agoBump __DragonFly_version to mark introduction of gcc50
John Marino [Wed, 11 Feb 2015 13:07:55 +0000 (14:07 +0100)]
Bump __DragonFly_version to mark introduction of gcc50

5 years agoecc/memtemp/e5 - Correct E5 v3 PCI slot numbers
Michael Neumann [Wed, 11 Feb 2015 11:04:36 +0000 (12:04 +0100)]
ecc/memtemp/e5 - Correct E5 v3 PCI slot numbers

The PCI slot numbers for E5 v3 IMC as introduced with commit 0c543cdd were
wrong, at least according to the hardware I am testing with (E5 1620).

After this commit and this patch from sephe [1] I can get ecc(4) and
memtemp(4) working on the E5 1600 v3 series:

ecc0: <Intel E5 v3 ECC node0 channel0> [tentative] at device 21.2 on pci255
ecc0: DDR4 ecc0: native DDR
ecc0: DIMM0 8GB, 1x4, density 4GB
ecc0: DIMM0 rank0, corrected error threshold 32767
ecc0: <Intel E5 v3 ECC node0 channel0> [attached!] at device 21.2 on pci255

memtemp0: <Intel E5 v3 memory thermal sensor node0 channel0> [tentative]
           at device 21.0 on pci255
memtemp0: <Intel E5 v3 memory thermal sensor node0 channel0> [attached!]
           at device 21.0 on pci255

[1]: http://leaf.dragonflybsd.org/~sephe/e5_v3_memtemp_ecc.diff

5 years agorwhod(8): Fix the warning and raise WARNS back up to 6.
Sascha Wildner [Wed, 11 Feb 2015 09:50:05 +0000 (10:50 +0100)]
rwhod(8): Fix the warning and raise WARNS back up to 6.

'next' is only initialized and referenced (in separate if()'s) when
'quiet_mode' is not set. Unfortunately gcc does not realize this and
warns about 'next' being maybe uninitialized.

Fix this by initializing 'next', with no functional change.

5 years agopppd(8): Include libpcap's config.h for HAVE_* in pcap-int.h.
Sascha Wildner [Wed, 11 Feb 2015 09:59:28 +0000 (10:59 +0100)]
pppd(8): Include libpcap's config.h for HAVE_* in pcap-int.h.

5 years agopflogd(8): Fix the warning and raise WARNS back up to 5.
Sascha Wildner [Wed, 11 Feb 2015 09:57:36 +0000 (10:57 +0100)]
pflogd(8): Fix the warning and raise WARNS back up to 5.

The issue here is that pcap-int.h (from libpcap) is included without
also including libpcap's config.h. This results in HAVE_STRLCPY not
being set which makes visible the strlcpy() compatibility macro in
pcap-int.h where gcc ultimately warns.

Fix by including libpcap's config.h so the pcap-int.h header knows
that we have strlcpy().

While here, fix a wrong comparison of if_exists()'s result with -1
as if_exists() only returns 0 or 1 (as correctly pointed out by grim7
in the IRC channel).

5 years agoix: Fix and simplify link state bit testing logic
Sepherosa Ziehau [Wed, 11 Feb 2015 08:53:40 +0000 (16:53 +0800)]
ix: Fix and simplify link state bit testing logic

Noticed-by: joris@
5 years agogames: Fix real bugs on three games (found by gcc 5.0)
John Marino [Wed, 11 Feb 2015 08:03:31 +0000 (09:03 +0100)]
games: Fix real bugs on three games (found by gcc 5.0)

I had NO_GAMES set so I missed these bugs yesterday.  Adventure, Fortune,
and Mille all had bugs in them  (the latter had two).

Now gcc-5.0 can build the entire world and kernel.
I still need to verify that a gcc-5.0 built world and kernel is bootable
and works though.

5 years agoecc/memtemp/e5: Prepare for E5 v3 support
Sepherosa Ziehau [Sun, 8 Feb 2015 13:49:48 +0000 (21:49 +0800)]
ecc/memtemp/e5: Prepare for E5 v3 support

5 years agokern ath drivers: Fix loops bounds (real bug x2) + source
John Marino [Wed, 11 Feb 2015 01:59:18 +0000 (02:59 +0100)]
kern ath drivers: Fix loops bounds (real bug x2) + source

The ar9300 source had a couple of logic ambiguities causing
[-Werror=logical-not-parenthesis] warnings.  The other two used the
wrong variable for the upper bounds of the loop.  I assume it was
correct once but the code changed, and the author neglected to use the
next edges max value.

5 years agokern: Fix [-Werror=aggressive-loop-optimizations]
John Marino [Wed, 11 Feb 2015 01:57:59 +0000 (02:57 +0100)]
kern: Fix [-Werror=aggressive-loop-optimizations]

These were basic upper bound checking errors on loops

5 years agokernel: Fix -Wmaybe-unitialized
John Marino [Wed, 11 Feb 2015 01:51:05 +0000 (02:51 +0100)]
kernel: Fix -Wmaybe-unitialized

Likely there was never a bug here, so explicitly initializing won't
make a difference other than make gcc 5.0 happy.

5 years agokern: Fix [-Werror=logical-not-parenthesis]
John Marino [Wed, 11 Feb 2015 01:48:43 +0000 (02:48 +0100)]
kern: Fix [-Werror=logical-not-parenthesis]

Since the whole point of this error is that logic order can be
ambiguous, I'm not 100% sure confident in these fixes, but they are
required to get the kernel to build with gcc 5.0.

5 years agogcc50: local mod to support kernel printf formats
John Marino [Tue, 10 Feb 2015 22:42:37 +0000 (23:42 +0100)]
gcc50: local mod to support kernel printf formats

The diff from gcc47 patched without issues (only line offsets).

5 years agokern: Make sure gcc47 - gcc50 don't check for set-not-used
John Marino [Tue, 10 Feb 2015 23:28:25 +0000 (00:28 +0100)]
kern: Make sure gcc47 - gcc50 don't check for set-not-used

5 years agokern: Address set-but-unused warnings (mostly)
John Marino [Tue, 10 Feb 2015 23:04:33 +0000 (00:04 +0100)]
kern: Address set-but-unused warnings (mostly)

On of these is an [-Werror=logical-not-parenthesis] error.
This is as far as I can get without implementing %r format again.

5 years agorwhod(8): Lower WARNS to 2 (masks -Wmaybe-uninitialized)
John Marino [Tue, 10 Feb 2015 22:26:16 +0000 (23:26 +0100)]
rwhod(8): Lower WARNS to 2 (masks -Wmaybe-uninitialized)

5 years agopflogd(8): lower WARNS and fix logic errors
John Marino [Tue, 10 Feb 2015 22:17:53 +0000 (23:17 +0100)]
pflogd(8): lower WARNS and fix logic errors

The contrib files trigger a new -Wunused-value warning, so lower WARNS
to 3 to suppress that.  Also, a [logical-not-parenthesis] error was
triggering [-Werror=bool-compare].  Fixing it fixed the compare too.

5 years agobsd.sys.mk: Teach it about -Wunused-value (new with gcc4.9)
John Marino [Tue, 10 Feb 2015 22:16:21 +0000 (23:16 +0100)]
bsd.sys.mk: Teach it about -Wunused-value (new with gcc4.9)

5 years agokeyserv(8): Fix size argument on debugging output
John Marino [Tue, 10 Feb 2015 22:01:25 +0000 (23:01 +0100)]
keyserv(8): Fix size argument on debugging output

This was another size of pointer problem.

5 years agotruss(1): remove inline directive to fix [-Werror=inline]
John Marino [Tue, 10 Feb 2015 21:49:25 +0000 (22:49 +0100)]
truss(1): remove inline directive to fix [-Werror=inline]

GCC 5.0 thinks inlining the usage function will fail and only cause the
program to get bigger.  Minor, but I'll following GCC's advice.

5 years agoopiekey (contrib): Fix serious (?) [-Wsizeof-pointer-memaccess]
John Marino [Tue, 10 Feb 2015 21:38:44 +0000 (22:38 +0100)]
opiekey (contrib): Fix serious (?) [-Wsizeof-pointer-memaccess]

On a password verification function of opiekey, the amount of bytes
allocated to a secret was 4 bytes of i386 and 8 bytes of x86-64.  Memset
was using the size of the pointer to allocate memory.

Change 3 instances of this to size OPIE_SECRET_MAX + 1 to fix it.
FYI this vendor branch is like 16 years old...

5 years agosysctl(8): fix [-Werror=logical-not-parentheses] error
John Marino [Tue, 10 Feb 2015 21:18:18 +0000 (22:18 +0100)]
sysctl(8): fix [-Werror=logical-not-parentheses] error

5 years agortsol(8): Fix loop bug (aggressive-loop-optimizations)
John Marino [Tue, 10 Feb 2015 21:15:00 +0000 (22:15 +0100)]
rtsol(8): Fix loop bug (aggressive-loop-optimizations)

The index was being checked for validity after the array was accessed,
putting the check first makes gcc 5.0 happy.

5 years agonewfs_hammer(8): fix [-Wsizeof-pointer-memaccess]
John Marino [Tue, 10 Feb 2015 20:57:32 +0000 (21:57 +0100)]
newfs_hammer(8): fix [-Wsizeof-pointer-memaccess]

The device type comparison only worked by accident on x86-64 and not
reliability on i386 because the sizeof function returned the size of
the address rather than the size of the vol->type string.  Fix by
specifying the size of "DEVICE" to strncmp instead.

5 years agonatacontrol(8): Fix [-Werror=logical-not-parentheses] error
John Marino [Tue, 10 Feb 2015 20:55:23 +0000 (21:55 +0100)]
natacontrol(8): Fix [-Werror=logical-not-parentheses] error

5 years agodevd(8): Lower WARNS from 5 to 2 (has unused local typedefs)
John Marino [Tue, 10 Feb 2015 20:18:09 +0000 (21:18 +0100)]
devd(8): Lower WARNS from 5 to 2 (has unused local typedefs)

GCC 5.0 has detected local unused typedefs, so lower the warnings so
that compiler can build it.

5 years agobsd.sys.mk: support -Wunused-local-typedef
John Marino [Tue, 10 Feb 2015 20:22:58 +0000 (21:22 +0100)]
bsd.sys.mk: support -Wunused-local-typedef

Add support to bsd.sys.mk for a new warning, unused-local-typedef.  This
warning showed up in gcc 4.8 and is included in -Wall.  Hopefully I did
this correctly, but if not, swildner will soon correct it. :)

5 years agoFix static archive libstdc++.a for gcc 5.0
John Marino [Tue, 10 Feb 2015 19:28:22 +0000 (20:28 +0100)]
Fix static archive libstdc++.a for gcc 5.0

The libstdc++ libaries for gcc 5.0 are built differently than they have
been in the past, and closely mirror what the vendor build system does.
Three "convenience" librarys are built first: c++98, c++11, and supc++.
Both static and PIC versions are built.  The final library combines the
three components along with about 10 unique objects.

It worked fine for the shared version (libstd.so.9) but the static
version was unreadable.  I fixed it by creating a dedicated "ar" script
to dictate what gets assembled in the new static archive.  It would
have been a sweet solution has "ar" not had an incredible limitation:
The script can not have consecutive "+" characters on any line.  To
work around this, I had to:
  1) rename the 3 component libraries (all had ++ in the name)
  2) rename the output library (libstdc++.a => libstdcxx.a)
  3) copy all the cc files with "++" in their names to a new filename.
     This affected about 3-4 files.
  4) move the output library back to the proper name of libstdc++.a

What a pain those hacks were, but it works and gcc-5.0 can now build
itself.  It still can't complete world due to Werror trigging on new
warnings, but it's a good fix.

5 years agobsd.lib.mk: Allow for possibility to override static lib target
John Marino [Tue, 10 Feb 2015 19:24:32 +0000 (20:24 +0100)]
bsd.lib.mk: Allow for possibility to override static lib target

The upcoming fix for gcc 5.0 libstdc++.a requires a dedicated static
library target.  Up until now this hasn't been possible without bmake
screaming about duplicate targets (although it does work).  Add a simple
"if not target defined" check to bsd.lib.mk to avoid these warnings.

5 years agoAdd two more files to contrib/gcc-5.0/README.DELETED
John Marino [Tue, 10 Feb 2015 19:22:31 +0000 (20:22 +0100)]
Add two more files to contrib/gcc-5.0/README.DELETED

These were removed from the vendor branch to avoid the makefiles
accidentally picking up the generic version instead of the dfly version.
They were libstdc++ source files.

5 years agoMerge branch 'vendor/GCC50'
John Marino [Tue, 10 Feb 2015 19:21:01 +0000 (20:21 +0100)]
Merge branch 'vendor/GCC50'

5 years agoRemove two generic configure files for libstdc++
John Marino [Tue, 10 Feb 2015 19:16:45 +0000 (20:16 +0100)]
Remove two generic configure files for libstdc++

They are superceded by DragonFly-specific files

5 years agoif_rum - Reapply ratectl fix from 12ae2d804aa2cd27a8e9884f125d484784e76e75.
Imre Vadasz [Tue, 10 Feb 2015 15:42:41 +0000 (16:42 +0100)]
if_rum - Reapply ratectl fix from 12ae2d804aa2cd27a8e9884f125d484784e76e75.

5 years agoHook gcc 5.0 (pre-release) in build, unhook gcc 4.4
John Marino [Tue, 10 Feb 2015 14:13:34 +0000 (15:13 +0100)]
Hook gcc 5.0 (pre-release) in build, unhook gcc 4.4

Effectively replace GCC 4.4 with the 1 February 2015 snapshot of the
pre-release GCC 5.0.  This compiler is in pretty good shape, but it is
not perfect.  It cannot fully build world if WORLD_CCCVER is set to
GCC50.  This compiler import is a work in progress.

* The old compiler has been unhooked.
* The gcc44 sources may be removed soon
* Obviously NO_GCC44 doesn't work anymore
* NO_GCC50 has been created and should work
* NO_CXX was never documented and has been removed
* NO_OBJC was not deemed worthwhile and it has been removed
* man pages have been updated accordingly
* default make.conf has been updated accordingly
* Per bsd.sys.mk, gcc50 behaves just like gcc47
* Actually, all CCVER starting with "gcc" now behave like gcc47
* The proper CCVER value is "gcc50".  If "gcc5" is specified, the
  dports compiler lang/gcc5 will be used.

Iterating: THIS IS AN EXPERIMENTAL COMPILER!  It's not ready for
prime-time yet.  Do NOT set WORLD_CCVER to "gcc50".

5 years agoAdd README's to new vendor/GCC50 branch and one local mod
John Marino [Tue, 10 Feb 2015 13:46:24 +0000 (14:46 +0100)]
Add README's to new vendor/GCC50 branch and one local mod

Since GCC 5.0 will be the first release to officially support DragonFly,
there are very few local modifications planned, three.  At this time,
I'm only adding the first which defines the default search directories
for gcc libraries and programs.