Skip to content

Circular dependency between iocore and tscore #9768

@jpeach

Description

@jpeach

If you try to run tests without doing a full build first, the build fails because of ordering issues:

$ make -j4 check
...
make[3]: Entering directory '/home/jpeach/src/trafficserver/src/tscore'
...
make[3]: *** No rule to make target '../../iocore/eventsystem/libinkevent.a', needed by 'test_tscore'.  Stop.

However, it's not possible to re-order the build so that this works, because iocore and tscore depend on each other.

In tscore, the MTHashTable class uses ProxyMutex from iocore for locking. ProxyMutex pulls in EThread and all sorts of other iocore symbols. iocore depends on tscore all over the place, which seems reasonable and intended.

AFAICT, MTHashTable is only used in one place (QUIC support in iocore, see #2478).

Metadata

Metadata

Assignees

Labels

Buildwork related to build configuration or environment

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions